From 9f7ae0e95f89b964a098eaacdfd89ff25e05c615 Mon Sep 17 00:00:00 2001 From: Mike Macgirvin <mike@macgirvin.com> Date: Mon, 5 Jul 2010 03:34:42 -0700 Subject: [PATCH] Add simplepie --- simplepie/LICENSE.txt | 26 + simplepie/README.markdown | 53 + .../COMPATIBILITY README.txt | 7 + .../sp_compatibility_test.php | 330 + simplepie/create.php | 178 + simplepie/db.sql | 38 + simplepie/demo/cli_test.php | 23 + .../demo/for_the_demo/alternate_favicon.png | Bin 0 -> 28621 bytes .../for_the_demo/background_blockquote.png | Bin 0 -> 27353 bytes .../demo/for_the_demo/background_menuitem.gif | Bin 0 -> 533 bytes .../for_the_demo/background_menuitem_off.gif | Bin 0 -> 533 bytes .../background_menuitem_shadow.gif | Bin 0 -> 250 bytes .../demo/for_the_demo/favicons/alternate.png | Bin 0 -> 28621 bytes .../demo/for_the_demo/favicons/blinklist.png | Bin 0 -> 4377 bytes .../demo/for_the_demo/favicons/blogmarks.png | Bin 0 -> 3823 bytes .../demo/for_the_demo/favicons/delicious.png | Bin 0 -> 3739 bytes simplepie/demo/for_the_demo/favicons/digg.png | Bin 0 -> 4004 bytes .../demo/for_the_demo/favicons/magnolia.png | Bin 0 -> 4574 bytes .../demo/for_the_demo/favicons/myweb2.png | Bin 0 -> 4010 bytes .../demo/for_the_demo/favicons/newsvine.png | Bin 0 -> 3804 bytes .../demo/for_the_demo/favicons/reddit.png | Bin 0 -> 4239 bytes .../demo/for_the_demo/favicons/segnalo.png | Bin 0 -> 4116 bytes .../demo/for_the_demo/favicons/simpy.png | Bin 0 -> 4256 bytes .../demo/for_the_demo/favicons/spurl.png | Bin 0 -> 3970 bytes .../demo/for_the_demo/favicons/technorati.png | Bin 0 -> 4087 bytes .../demo/for_the_demo/favicons/wists.png | Bin 0 -> 3974 bytes simplepie/demo/for_the_demo/feed.png | Bin 0 -> 715 bytes .../demo/for_the_demo/logo_simplepie_demo.png | Bin 0 -> 3047 bytes .../demo/for_the_demo/lucida-grande-bold.swf | Bin 0 -> 21159 bytes simplepie/demo/for_the_demo/mediaplayer.swf | Bin 0 -> 32008 bytes .../demo/for_the_demo/mediaplayer_readme.htm | 5 + simplepie/demo/for_the_demo/mini_podcast.png | Bin 0 -> 1202 bytes simplepie/demo/for_the_demo/place_audio.png | Bin 0 -> 851 bytes simplepie/demo/for_the_demo/place_video.png | Bin 0 -> 36713 bytes simplepie/demo/for_the_demo/sIFR-print.css | 35 + simplepie/demo/for_the_demo/sIFR-screen.css | 39 + simplepie/demo/for_the_demo/sifr-config.js | 40 + simplepie/demo/for_the_demo/sifr.js | 19 + simplepie/demo/for_the_demo/simplepie.css | 397 + simplepie/demo/for_the_demo/sleight.js | 31 + .../place_audio_fireworksfile.png | Bin 0 -> 39177 bytes .../place_video_fireworksfile.png | Bin 0 -> 115826 bytes .../source_files/sIFR-r245/SifrStyleSheet.as | 71 + .../source_files/sIFR-r245/_README_.txt | 12 + .../source_files/sIFR-r245/options.as | 12 + .../source_files/sIFR-r245/sIFR.as | 359 + .../source_files/sIFR-r245/sifr.fla | Bin 0 -> 47104 bytes simplepie/demo/for_the_demo/top_gradient.gif | Bin 0 -> 1378 bytes simplepie/demo/for_the_demo/verdana.swf | Bin 0 -> 28575 bytes .../for_the_demo/yanone-kaffeesatz-bold.swf | Bin 0 -> 76780 bytes simplepie/demo/handler_image.php | 6 + simplepie/demo/index.php | 295 + simplepie/demo/minimalistic.php | 137 + simplepie/demo/multifeeds.php | 108 + simplepie/demo/test.php | 62 + simplepie/idn/LICENCE | 502 + simplepie/idn/ReadMe.txt | 123 + simplepie/idn/idna_convert.class.php | 969 + simplepie/idn/npdata.ser | 1 + simplepie/simplepie.inc | 15023 ++++++++++++++++ simplepie/test/absolutize/RFC3986.5.4/README | 1 + .../absolutize/RFC3986.5.4/abnormal/1.php | 16 + .../absolutize/RFC3986.5.4/abnormal/10.php | 16 + .../absolutize/RFC3986.5.4/abnormal/11.php | 16 + .../absolutize/RFC3986.5.4/abnormal/12.php | 16 + .../absolutize/RFC3986.5.4/abnormal/13.php | 16 + .../absolutize/RFC3986.5.4/abnormal/14.php | 16 + .../absolutize/RFC3986.5.4/abnormal/15.php | 16 + .../absolutize/RFC3986.5.4/abnormal/16.php | 16 + .../absolutize/RFC3986.5.4/abnormal/17.php | 16 + .../absolutize/RFC3986.5.4/abnormal/18.php | 16 + .../absolutize/RFC3986.5.4/abnormal/19.php | 16 + .../absolutize/RFC3986.5.4/abnormal/2.php | 16 + .../absolutize/RFC3986.5.4/abnormal/3.php | 16 + .../absolutize/RFC3986.5.4/abnormal/4.php | 16 + .../absolutize/RFC3986.5.4/abnormal/5.php | 16 + .../absolutize/RFC3986.5.4/abnormal/6.php | 16 + .../absolutize/RFC3986.5.4/abnormal/7.php | 16 + .../absolutize/RFC3986.5.4/abnormal/8.php | 16 + .../absolutize/RFC3986.5.4/abnormal/9.php | 16 + .../test/absolutize/RFC3986.5.4/base.php | 25 + .../test/absolutize/RFC3986.5.4/normal/1.php | 16 + .../test/absolutize/RFC3986.5.4/normal/10.php | 16 + .../test/absolutize/RFC3986.5.4/normal/11.php | 16 + .../test/absolutize/RFC3986.5.4/normal/12.php | 16 + .../test/absolutize/RFC3986.5.4/normal/13.php | 16 + .../test/absolutize/RFC3986.5.4/normal/14.php | 16 + .../test/absolutize/RFC3986.5.4/normal/15.php | 16 + .../test/absolutize/RFC3986.5.4/normal/16.php | 16 + .../test/absolutize/RFC3986.5.4/normal/17.php | 16 + .../test/absolutize/RFC3986.5.4/normal/18.php | 16 + .../test/absolutize/RFC3986.5.4/normal/19.php | 16 + .../test/absolutize/RFC3986.5.4/normal/2.php | 16 + .../test/absolutize/RFC3986.5.4/normal/20.php | 16 + .../test/absolutize/RFC3986.5.4/normal/21.php | 16 + .../test/absolutize/RFC3986.5.4/normal/22.php | 16 + .../test/absolutize/RFC3986.5.4/normal/23.php | 16 + .../test/absolutize/RFC3986.5.4/normal/3.php | 16 + .../test/absolutize/RFC3986.5.4/normal/4.php | 16 + .../test/absolutize/RFC3986.5.4/normal/5.php | 16 + .../test/absolutize/RFC3986.5.4/normal/6.php | 16 + .../test/absolutize/RFC3986.5.4/normal/7.php | 16 + .../test/absolutize/RFC3986.5.4/normal/8.php | 16 + .../test/absolutize/RFC3986.5.4/normal/9.php | 16 + .../test/absolutize/SPtests/bugs/1091.0.1.php | 17 + .../test/absolutize/SPtests/bugs/1091.0.php | 17 + .../test/absolutize/SPtests/bugs/274.0.php | 17 + .../test/absolutize/SPtests/bugs/274.1.php | 17 + .../test/absolutize/SPtests/bugs/274.2.php | 17 + .../test/absolutize/SPtests/bugs/274.3.php | 17 + .../test/absolutize/SPtests/bugs/579.0.php | 17 + .../test/absolutize/SPtests/bugs/691.0.php | 17 + .../test/absolutize/SPtests/bugs/691.1.php | 17 + .../test/absolutize/SPtests/bugs/691.2.php | 17 + .../test/absolutize/SPtests/bugs/691.3.php | 17 + .../test/absolutize/SPtests/bugs/691.4.php | 17 + .../test/absolutize/SPtests/bugs/691.5.php | 17 + .../test/absolutize/SPtests/bugs/691.6.php | 17 + .../test/absolutize/SPtests/bugs/691.7.php | 17 + .../test/absolutize/SPtests/bugs/691.8.php | 17 + .../bugs/pct_encoding_invalid_second_char.php | 17 + simplepie/test/background.gif | Bin 0 -> 4536 bytes simplepie/test/date/RFC3339/1.php | 16 + simplepie/test/date/RFC3339/2.php | 16 + simplepie/test/date/RFC3339/3.php | 16 + simplepie/test/date/RFC3339/README | 1 + .../RFC2822/invalid/four_digit_year.php | 16 + .../RFC2822/invalid/full_name_of_day.php | 16 + .../SPtests/RFC2822/invalid/invalid_day.php | 16 + .../RFC2822/invalid/invalid_timezone.php | 16 + .../RFC2822/invalid/mismatch_name_of_day.php | 16 + .../test/date/SPtests/RFC2822/valid/1.php | 16 + .../test/date/SPtests/RFC2822/valid/10.php | 16 + .../test/date/SPtests/RFC2822/valid/11.php | 16 + .../test/date/SPtests/RFC2822/valid/12.php | 16 + .../test/date/SPtests/RFC2822/valid/13.php | 16 + .../test/date/SPtests/RFC2822/valid/14.php | 16 + .../test/date/SPtests/RFC2822/valid/15.php | 16 + .../test/date/SPtests/RFC2822/valid/16.php | 16 + .../test/date/SPtests/RFC2822/valid/17.php | 16 + .../test/date/SPtests/RFC2822/valid/18.php | 16 + .../test/date/SPtests/RFC2822/valid/19.php | 16 + .../test/date/SPtests/RFC2822/valid/2.php | 16 + .../test/date/SPtests/RFC2822/valid/20.php | 16 + .../test/date/SPtests/RFC2822/valid/21.php | 16 + .../test/date/SPtests/RFC2822/valid/22.php | 16 + .../test/date/SPtests/RFC2822/valid/23.php | 16 + .../test/date/SPtests/RFC2822/valid/24.php | 16 + .../test/date/SPtests/RFC2822/valid/25.php | 16 + .../test/date/SPtests/RFC2822/valid/26.php | 16 + .../test/date/SPtests/RFC2822/valid/27.php | 16 + .../test/date/SPtests/RFC2822/valid/28.php | 16 + .../test/date/SPtests/RFC2822/valid/29.php | 16 + .../test/date/SPtests/RFC2822/valid/3.php | 16 + .../test/date/SPtests/RFC2822/valid/30.php | 16 + .../test/date/SPtests/RFC2822/valid/31.php | 16 + .../test/date/SPtests/RFC2822/valid/32.php | 16 + .../test/date/SPtests/RFC2822/valid/33.php | 16 + .../test/date/SPtests/RFC2822/valid/34.php | 16 + .../test/date/SPtests/RFC2822/valid/35.php | 16 + .../test/date/SPtests/RFC2822/valid/36.php | 16 + .../test/date/SPtests/RFC2822/valid/37.php | 16 + .../test/date/SPtests/RFC2822/valid/38.php | 16 + .../test/date/SPtests/RFC2822/valid/39.php | 16 + .../test/date/SPtests/RFC2822/valid/4.php | 16 + .../test/date/SPtests/RFC2822/valid/40.php | 16 + .../test/date/SPtests/RFC2822/valid/41.php | 16 + .../test/date/SPtests/RFC2822/valid/42.php | 16 + .../test/date/SPtests/RFC2822/valid/43.php | 16 + .../test/date/SPtests/RFC2822/valid/44.php | 16 + .../test/date/SPtests/RFC2822/valid/5.php | 16 + .../test/date/SPtests/RFC2822/valid/6.php | 16 + .../test/date/SPtests/RFC2822/valid/7.php | 16 + .../test/date/SPtests/RFC2822/valid/8.php | 16 + .../test/date/SPtests/RFC2822/valid/9.php | 16 + simplepie/test/date/SPtests/bugs/157.0.php | 16 + simplepie/test/date/SPtests/bugs/259.0.php | 16 + simplepie/test/date/W3CDTF/1.php | 16 + simplepie/test/date/W3CDTF/2.php | 16 + simplepie/test/date/W3CDTF/README | 1 + .../SPtests/atom/0.3/dc/1.0/subject.php | 19 + .../SPtests/atom/0.3/dc/1.1/subject.php | 19 + .../SPtests/atom/1.0/dc/1.0/subject.php | 19 + .../SPtests/atom/1.0/dc/1.1/subject.php | 19 + .../SPtests/atom/1.0/label.php | 19 + .../SPtests/atom/1.0/term.php | 19 + .../feed_category_label/SPtests/bugs/21.0.php | 19 + .../SPtests/rss/0.90/atom/1.0/label.php | 21 + .../SPtests/rss/0.90/atom/1.0/term.php | 21 + .../SPtests/rss/0.90/dc/1.0/subject.php | 21 + .../SPtests/rss/0.90/dc/1.1/subject.php | 21 + .../rss/0.91-netscape/atom/1.0/label.php | 22 + .../rss/0.91-netscape/atom/1.0/term.php | 22 + .../rss/0.91-netscape/dc/1.0/subject.php | 22 + .../rss/0.91-netscape/dc/1.1/subject.php | 22 + .../rss/0.91-userland/atom/1.0/label.php | 21 + .../rss/0.91-userland/atom/1.0/term.php | 21 + .../rss/0.91-userland/dc/1.0/subject.php | 21 + .../rss/0.91-userland/dc/1.1/subject.php | 21 + .../SPtests/rss/0.92/atom/1.0/label.php | 21 + .../SPtests/rss/0.92/atom/1.0/term.php | 21 + .../SPtests/rss/0.92/dc/1.0/subject.php | 21 + .../SPtests/rss/0.92/dc/1.1/subject.php | 21 + .../SPtests/rss/1.0/atom/1.0/label.php | 21 + .../SPtests/rss/1.0/atom/1.0/term.php | 21 + .../SPtests/rss/1.0/dc/1.0/subject.php | 21 + .../SPtests/rss/1.0/dc/1.1/subject.php | 21 + .../SPtests/rss/2.0/atom/1.0/label.php | 21 + .../SPtests/rss/2.0/atom/1.0/term.php | 21 + .../SPtests/rss/2.0/category.php | 21 + .../SPtests/rss/2.0/dc/1.0/subject.php | 21 + .../SPtests/rss/2.0/dc/1.1/subject.php | 21 + .../SPtests/atom/0.3/dc/1.0/rights.php | 19 + .../SPtests/atom/0.3/dc/1.1/rights.php | 19 + .../SPtests/atom/1.0/dc/1.0/rights.php | 19 + .../SPtests/atom/1.0/dc/1.1/rights.php | 19 + .../SPtests/atom/1.0/rights.php | 19 + .../SPtests/rss/0.90/atom/1.0/rights.php | 21 + .../SPtests/rss/0.90/dc/1.0/rights.php | 21 + .../SPtests/rss/0.90/dc/1.1/rights.php | 21 + .../rss/0.91-netscape/atom/1.0/rights.php | 22 + .../SPtests/rss/0.91-netscape/copyright.php | 22 + .../rss/0.91-netscape/dc/1.0/rights.php | 22 + .../rss/0.91-netscape/dc/1.1/rights.php | 22 + .../rss/0.91-userland/atom/1.0/rights.php | 21 + .../SPtests/rss/0.91-userland/copyright.php | 21 + .../rss/0.91-userland/dc/1.0/rights.php | 21 + .../rss/0.91-userland/dc/1.1/rights.php | 21 + .../SPtests/rss/0.92/atom/1.0/rights.php | 21 + .../SPtests/rss/0.92/copyright.php | 21 + .../SPtests/rss/0.92/dc/1.0/rights.php | 21 + .../SPtests/rss/0.92/dc/1.1/rights.php | 21 + .../SPtests/rss/1.0/atom/1.0/rights.php | 21 + .../SPtests/rss/1.0/dc/1.0/rights.php | 21 + .../SPtests/rss/1.0/dc/1.1/rights.php | 21 + .../SPtests/rss/2.0/atom/1.0/rights.php | 21 + .../SPtests/rss/2.0/copyright.php | 21 + .../SPtests/rss/2.0/dc/1.0/rights.php | 21 + .../SPtests/rss/2.0/dc/1.1/rights.php | 21 + .../SPtests/atom/0.3/dc/1.0/description.php | 19 + .../SPtests/atom/0.3/dc/1.1/description.php | 19 + .../SPtests/atom/0.3/tagline.php | 19 + .../SPtests/atom/1.0/dc/1.0/description.php | 19 + .../SPtests/atom/1.0/dc/1.1/description.php | 19 + .../SPtests/atom/1.0/subtitle.php | 19 + .../SPtests/rss/0.90/atom/0.3/tagline.php | 21 + .../SPtests/rss/0.90/atom/1.0/subtitle.php | 21 + .../SPtests/rss/0.90/dc/1.0/description.php | 21 + .../SPtests/rss/0.90/dc/1.1/description.php | 21 + .../SPtests/rss/0.90/description.php | 21 + .../rss/0.91-netscape/atom/0.3/tagline.php | 22 + .../rss/0.91-netscape/atom/1.0/subtitle.php | 22 + .../rss/0.91-netscape/dc/1.0/description.php | 22 + .../rss/0.91-netscape/dc/1.1/description.php | 22 + .../SPtests/rss/0.91-netscape/description.php | 22 + .../rss/0.91-userland/atom/0.3/tagline.php | 21 + .../rss/0.91-userland/atom/1.0/subtitle.php | 21 + .../rss/0.91-userland/dc/1.0/description.php | 21 + .../rss/0.91-userland/dc/1.1/description.php | 21 + .../SPtests/rss/0.91-userland/description.php | 21 + .../SPtests/rss/0.92/atom/0.3/tagline.php | 21 + .../SPtests/rss/0.92/atom/1.0/subtitle.php | 21 + .../SPtests/rss/0.92/dc/1.0/description.php | 21 + .../SPtests/rss/0.92/dc/1.1/description.php | 21 + .../SPtests/rss/0.92/description.php | 21 + .../SPtests/rss/1.0/atom/0.3/tagline.php | 21 + .../SPtests/rss/1.0/atom/1.0/subtitle.php | 21 + .../SPtests/rss/1.0/dc/1.0/description.php | 21 + .../SPtests/rss/1.0/dc/1.1/description.php | 21 + .../SPtests/rss/1.0/description.php | 21 + .../SPtests/rss/2.0/atom/0.3/tagline.php | 21 + .../SPtests/rss/2.0/atom/1.0/subtitle.php | 21 + .../SPtests/rss/2.0/dc/1.0/description.php | 21 + .../SPtests/rss/2.0/dc/1.1/description.php | 21 + .../SPtests/rss/2.0/description.php | 21 + .../SPtests/atom/1.0/icon-default.php | 19 + .../SPtests/atom/1.0/logo-default.php | 19 + .../rss/0.90/atom/1.0/icon-default.php | 21 + .../rss/0.90/atom/1.0/logo-default.php | 21 + .../SPtests/rss/0.90/url-default.php | 21 + .../0.91-netscape/atom/1.0/icon-default.php | 22 + .../0.91-netscape/atom/1.0/logo-default.php | 22 + .../SPtests/rss/0.91-netscape/height.php | 24 + .../SPtests/rss/0.91-netscape/url-default.php | 24 + .../0.91-userland/atom/1.0/icon-default.php | 21 + .../0.91-userland/atom/1.0/logo-default.php | 21 + .../SPtests/rss/0.91-userland/height.php | 23 + .../SPtests/rss/0.91-userland/url-default.php | 23 + .../rss/0.92/atom/1.0/icon-default.php | 21 + .../rss/0.92/atom/1.0/logo-default.php | 21 + .../SPtests/rss/0.92/height.php | 23 + .../SPtests/rss/0.92/url-default.php | 23 + .../SPtests/rss/1.0/atom/1.0/icon-default.php | 21 + .../SPtests/rss/1.0/atom/1.0/logo-default.php | 21 + .../SPtests/rss/1.0/url-default.php | 21 + .../SPtests/rss/2.0/atom/1.0/icon-default.php | 21 + .../SPtests/rss/2.0/atom/1.0/logo-default.php | 21 + .../SPtests/rss/2.0/height.php | 23 + .../SPtests/rss/2.0/url-default.php | 23 + .../feed_image_link/SPtests/rss/0.90/link.php | 21 + .../SPtests/rss/0.91-netscape/link.php | 24 + .../SPtests/rss/0.91-userland/link.php | 23 + .../feed_image_link/SPtests/rss/0.92/link.php | 23 + .../feed_image_link/SPtests/rss/1.0/link.php | 21 + .../feed_image_link/SPtests/rss/2.0/link.php | 23 + .../SPtests/rss/0.90/dc/1.0/title.php | 21 + .../SPtests/rss/0.90/dc/1.1/title.php | 21 + .../SPtests/rss/0.90/title.php | 21 + .../rss/0.91-netscape/dc/1.0/title.php | 24 + .../rss/0.91-netscape/dc/1.1/title.php | 24 + .../SPtests/rss/0.91-netscape/title.php | 24 + .../rss/0.91-userland/dc/1.0/title.php | 23 + .../rss/0.91-userland/dc/1.1/title.php | 23 + .../SPtests/rss/0.91-userland/title.php | 23 + .../SPtests/rss/0.92/dc/1.0/title.php | 23 + .../SPtests/rss/0.92/dc/1.1/title.php | 23 + .../SPtests/rss/0.92/title.php | 23 + .../SPtests/rss/1.0/dc/1.0/title.php | 21 + .../SPtests/rss/1.0/dc/1.1/title.php | 21 + .../SPtests/rss/1.0/title.php | 21 + .../SPtests/rss/2.0/dc/1.0/title.php | 23 + .../SPtests/rss/2.0/dc/1.1/title.php | 23 + .../SPtests/rss/2.0/title.php | 23 + .../feed_image_url/SPtests/atom/1.0/icon.php | 19 + .../feed_image_url/SPtests/atom/1.0/logo.php | 19 + .../SPtests/rss/0.90/atom/1.0/icon.php | 21 + .../SPtests/rss/0.90/atom/1.0/logo.php | 21 + .../feed_image_url/SPtests/rss/0.90/url.php | 21 + .../rss/0.91-netscape/atom/1.0/icon.php | 22 + .../rss/0.91-netscape/atom/1.0/logo.php | 22 + .../SPtests/rss/0.91-netscape/url.php | 24 + .../rss/0.91-userland/atom/1.0/icon.php | 21 + .../rss/0.91-userland/atom/1.0/logo.php | 21 + .../SPtests/rss/0.91-userland/url.php | 23 + .../SPtests/rss/0.92/atom/1.0/icon.php | 21 + .../SPtests/rss/0.92/atom/1.0/logo.php | 21 + .../feed_image_url/SPtests/rss/0.92/url.php | 23 + .../SPtests/rss/1.0/atom/1.0/icon.php | 21 + .../SPtests/rss/1.0/atom/1.0/logo.php | 21 + .../feed_image_url/SPtests/rss/1.0/url.php | 21 + .../SPtests/rss/2.0/atom/1.0/icon.php | 21 + .../SPtests/rss/2.0/atom/1.0/logo.php | 21 + .../feed_image_url/SPtests/rss/2.0/url.php | 23 + .../SPtests/atom/1.0/icon-default.php | 19 + .../SPtests/atom/1.0/logo-default.php | 19 + .../rss/0.90/atom/1.0/icon-default.php | 21 + .../rss/0.90/atom/1.0/logo-default.php | 21 + .../SPtests/rss/0.90/url-default.php | 21 + .../0.91-netscape/atom/1.0/icon-default.php | 22 + .../0.91-netscape/atom/1.0/logo-default.php | 22 + .../SPtests/rss/0.91-netscape/url-default.php | 24 + .../SPtests/rss/0.91-netscape/width.php | 24 + .../0.91-userland/atom/1.0/icon-default.php | 21 + .../0.91-userland/atom/1.0/logo-default.php | 21 + .../SPtests/rss/0.91-userland/url-default.php | 23 + .../SPtests/rss/0.91-userland/width.php | 23 + .../rss/0.92/atom/1.0/icon-default.php | 21 + .../rss/0.92/atom/1.0/logo-default.php | 21 + .../SPtests/rss/0.92/url-default.php | 23 + .../SPtests/rss/0.92/width.php | 23 + .../SPtests/rss/1.0/atom/1.0/icon-default.php | 21 + .../SPtests/rss/1.0/atom/1.0/logo-default.php | 21 + .../SPtests/rss/1.0/url-default.php | 21 + .../SPtests/rss/2.0/atom/1.0/icon-default.php | 21 + .../SPtests/rss/2.0/atom/1.0/logo-default.php | 21 + .../SPtests/rss/2.0/url-default.php | 23 + .../SPtests/rss/2.0/width.php | 23 + .../SPtests/atom/0.3/dc/1.0/language.php | 19 + .../SPtests/atom/0.3/dc/1.1/language.php | 19 + .../SPtests/atom/0.3/xml_lang.php | 19 + .../SPtests/atom/1.0/dc/1.0/language.php | 19 + .../SPtests/atom/1.0/dc/1.1/language.php | 19 + .../SPtests/atom/1.0/xml_lang.php | 19 + .../SPtests/rss/0.90/dc/1.0/language.php | 21 + .../SPtests/rss/0.90/dc/1.1/language.php | 21 + .../rss/0.91-netscape/dc/1.0/language.php | 22 + .../rss/0.91-netscape/dc/1.1/language.php | 22 + .../SPtests/rss/0.91-netscape/language.php | 22 + .../rss/0.91-userland/dc/1.0/language.php | 21 + .../rss/0.91-userland/dc/1.1/language.php | 21 + .../SPtests/rss/0.91-userland/language.php | 21 + .../SPtests/rss/0.92/dc/1.0/language.php | 21 + .../SPtests/rss/0.92/dc/1.1/language.php | 21 + .../SPtests/rss/0.92/language.php | 21 + .../SPtests/rss/1.0/dc/1.0/language.php | 21 + .../SPtests/rss/1.0/dc/1.1/language.php | 21 + .../SPtests/rss/2.0/dc/1.0/language.php | 21 + .../SPtests/rss/2.0/dc/1.1/language.php | 21 + .../SPtests/rss/2.0/language.php | 21 + .../test/feed_link/SPtests/atom/0.3/link.php | 19 + .../SPtests/atom/0.3/link_@rel_alternate.php | 19 + .../test/feed_link/SPtests/atom/1.0/link.php | 19 + .../atom/1.0/link_@rel_absolute_iri.php | 19 + .../SPtests/atom/1.0/link_@rel_alternate.php | 19 + .../SPtests/rss/0.90/atom/0.3/link.php | 21 + .../SPtests/rss/0.90/atom/1.0/link.php | 21 + .../test/feed_link/SPtests/rss/0.90/link.php | 21 + .../rss/0.91-netscape/atom/0.3/link.php | 22 + .../rss/0.91-netscape/atom/1.0/link.php | 22 + .../SPtests/rss/0.91-netscape/link.php | 22 + .../rss/0.91-userland/atom/0.3/link.php | 21 + .../rss/0.91-userland/atom/1.0/link.php | 21 + .../SPtests/rss/0.91-userland/link.php | 21 + .../SPtests/rss/0.92/atom/0.3/link.php | 21 + .../SPtests/rss/0.92/atom/1.0/link.php | 21 + .../test/feed_link/SPtests/rss/0.92/link.php | 21 + .../SPtests/rss/1.0/atom/0.3/link.php | 21 + .../SPtests/rss/1.0/atom/1.0/link.php | 21 + .../test/feed_link/SPtests/rss/1.0/link.php | 21 + .../SPtests/rss/2.0/atom/0.3/link.php | 21 + .../SPtests/rss/2.0/atom/1.0/link.php | 21 + .../test/feed_link/SPtests/rss/2.0/link.php | 21 + .../SPtests/atom/0.3/dc/1.0/title.php | 19 + .../SPtests/atom/0.3/dc/1.1/title.php | 19 + .../feed_title/SPtests/atom/0.3/title.php | 19 + .../SPtests/atom/1.0/dc/1.0/title.php | 19 + .../SPtests/atom/1.0/dc/1.1/title.php | 19 + .../feed_title/SPtests/atom/1.0/title.php | 19 + .../test/feed_title/SPtests/bugs/16.0.php | 23 + .../test/feed_title/SPtests/bugs/174.0.php | 20 + .../test/feed_title/SPtests/bugs/18.0.php | 24 + .../test/feed_title/SPtests/bugs/18.1.php | 24 + .../test/feed_title/SPtests/bugs/20.0.php | 19 + .../test/feed_title/SPtests/bugs/20.1.php | 19 + .../test/feed_title/SPtests/bugs/20.2.php | 19 + .../test/feed_title/SPtests/bugs/272.0.php | 19 + .../test/feed_title/SPtests/bugs/272.1.php | 19 + .../SPtests/rss/0.90/atom/0.3/title.php | 21 + .../SPtests/rss/0.90/atom/1.0/title.php | 21 + .../SPtests/rss/0.90/dc/1.0/title.php | 21 + .../SPtests/rss/0.90/dc/1.1/title.php | 21 + .../feed_title/SPtests/rss/0.90/title.php | 21 + .../rss/0.91-netscape/atom/0.3/title.php | 22 + .../rss/0.91-netscape/atom/1.0/title.php | 22 + .../rss/0.91-netscape/dc/1.0/title.php | 22 + .../rss/0.91-netscape/dc/1.1/title.php | 22 + .../SPtests/rss/0.91-netscape/title.php | 22 + .../rss/0.91-userland/atom/0.3/title.php | 21 + .../rss/0.91-userland/atom/1.0/title.php | 21 + .../rss/0.91-userland/dc/1.0/title.php | 21 + .../rss/0.91-userland/dc/1.1/title.php | 21 + .../SPtests/rss/0.91-userland/title.php | 21 + .../SPtests/rss/0.92/atom/0.3/title.php | 21 + .../SPtests/rss/0.92/atom/1.0/title.php | 21 + .../SPtests/rss/0.92/dc/1.0/title.php | 21 + .../SPtests/rss/0.92/dc/1.1/title.php | 21 + .../feed_title/SPtests/rss/0.92/title.php | 21 + .../SPtests/rss/1.0/atom/0.3/title.php | 21 + .../SPtests/rss/1.0/atom/1.0/title.php | 21 + .../SPtests/rss/1.0/dc/1.0/title.php | 21 + .../SPtests/rss/1.0/dc/1.1/title.php | 21 + .../test/feed_title/SPtests/rss/1.0/title.php | 21 + .../SPtests/rss/2.0/atom/0.3/title.php | 21 + .../SPtests/rss/2.0/atom/1.0/title.php | 21 + .../SPtests/rss/2.0/dc/1.0/title.php | 21 + .../SPtests/rss/2.0/dc/1.1/title.php | 21 + .../test/feed_title/SPtests/rss/2.0/title.php | 21 + simplepie/test/feed_title/rss-profile/1.php | 21 + simplepie/test/feed_title/rss-profile/2.php | 21 + simplepie/test/feed_title/rss-profile/3.php | 21 + simplepie/test/feed_title/rss-profile/4.php | 21 + simplepie/test/feed_title/rss-profile/5.php | 21 + simplepie/test/feed_title/rss-profile/6.php | 21 + simplepie/test/feed_title/rss-profile/7.php | 21 + .../SPtests/atom/0.3/dc/1.0/creator.php | 21 + .../SPtests/atom/0.3/dc/1.1/creator.php | 21 + .../SPtests/atom/0.3/feed.php | 24 + .../SPtests/atom/0.3/name.php | 23 + .../SPtests/atom/1.0/dc/1.0/creator.php | 21 + .../SPtests/atom/1.0/dc/1.1/creator.php | 21 + .../SPtests/atom/1.0/feed.php | 24 + .../SPtests/atom/1.0/name.php | 23 + .../SPtests/atom/1.0/source.php | 25 + .../SPtests/rss/0.90/atom/0.3/name.php | 23 + .../SPtests/rss/0.90/atom/1.0/name.php | 23 + .../SPtests/rss/0.90/dc/1.0/creator.php | 21 + .../SPtests/rss/0.90/dc/1.1/creator.php | 21 + .../rss/0.91-netscape/atom/0.3/name.php | 26 + .../rss/0.91-netscape/atom/1.0/name.php | 26 + .../rss/0.91-netscape/dc/1.0/creator.php | 24 + .../rss/0.91-netscape/dc/1.1/creator.php | 24 + .../rss/0.91-userland/atom/0.3/name.php | 25 + .../rss/0.91-userland/atom/1.0/name.php | 25 + .../rss/0.91-userland/dc/1.0/creator.php | 23 + .../rss/0.91-userland/dc/1.1/creator.php | 23 + .../SPtests/rss/0.92/atom/0.3/name.php | 25 + .../SPtests/rss/0.92/atom/1.0/name.php | 25 + .../SPtests/rss/0.92/dc/1.0/creator.php | 23 + .../SPtests/rss/0.92/dc/1.1/creator.php | 23 + .../SPtests/rss/1.0/atom/0.3/name.php | 23 + .../SPtests/rss/1.0/atom/1.0/name.php | 23 + .../SPtests/rss/1.0/dc/1.0/creator.php | 21 + .../SPtests/rss/1.0/dc/1.1/creator.php | 21 + .../SPtests/rss/2.0/atom/0.3/name.php | 25 + .../SPtests/rss/2.0/atom/1.0/name.php | 25 + .../SPtests/rss/2.0/author.php | 23 + .../SPtests/rss/2.0/dc/1.0/creator.php | 23 + .../SPtests/rss/2.0/dc/1.1/creator.php | 23 + .../SPtests/atom/0.3/dc/1.0/subject.php | 21 + .../SPtests/atom/0.3/dc/1.1/subject.php | 21 + .../SPtests/atom/1.0/dc/1.0/subject.php | 21 + .../SPtests/atom/1.0/dc/1.1/subject.php | 21 + .../SPtests/atom/1.0/label.php | 21 + .../SPtests/atom/1.0/term.php | 21 + .../SPtests/bugs/21.0.php | 21 + .../SPtests/rss/0.90/atom/1.0/label.php | 21 + .../SPtests/rss/0.90/atom/1.0/term.php | 21 + .../SPtests/rss/0.90/dc/1.0/subject.php | 21 + .../SPtests/rss/0.90/dc/1.1/subject.php | 21 + .../rss/0.91-netscape/atom/1.0/label.php | 24 + .../rss/0.91-netscape/atom/1.0/term.php | 24 + .../rss/0.91-netscape/dc/1.0/subject.php | 24 + .../rss/0.91-netscape/dc/1.1/subject.php | 24 + .../rss/0.91-userland/atom/1.0/label.php | 23 + .../rss/0.91-userland/atom/1.0/term.php | 23 + .../rss/0.91-userland/dc/1.0/subject.php | 23 + .../rss/0.91-userland/dc/1.1/subject.php | 23 + .../SPtests/rss/0.92/atom/1.0/label.php | 23 + .../SPtests/rss/0.92/atom/1.0/term.php | 23 + .../SPtests/rss/0.92/category.php | 23 + .../SPtests/rss/0.92/dc/1.0/subject.php | 23 + .../SPtests/rss/0.92/dc/1.1/subject.php | 23 + .../SPtests/rss/1.0/atom/1.0/label.php | 21 + .../SPtests/rss/1.0/atom/1.0/term.php | 21 + .../SPtests/rss/1.0/dc/1.0/subject.php | 21 + .../SPtests/rss/1.0/dc/1.1/subject.php | 21 + .../SPtests/rss/2.0/atom/1.0/label.php | 23 + .../SPtests/rss/2.0/atom/1.0/term.php | 23 + .../SPtests/rss/2.0/category.php | 23 + .../SPtests/rss/2.0/dc/1.0/subject.php | 23 + .../SPtests/rss/2.0/dc/1.1/subject.php | 23 + .../SPtests/atom/0.3/content.php | 21 + .../SPtests/atom/0.3/dc/1.0/description.php | 21 + .../SPtests/atom/0.3/dc/1.1/description.php | 21 + .../SPtests/atom/0.3/summary.php | 21 + .../SPtests/atom/1.0/content.php | 21 + .../SPtests/atom/1.0/dc/1.0/description.php | 21 + .../SPtests/atom/1.0/dc/1.1/description.php | 21 + .../SPtests/atom/1.0/summary.php | 21 + .../SPtests/rss/0.90/atom/0.3/content.php | 21 + .../SPtests/rss/0.90/atom/0.3/summary.php | 21 + .../SPtests/rss/0.90/atom/1.0/content.php | 21 + .../SPtests/rss/0.90/atom/1.0/summary.php | 21 + .../SPtests/rss/0.90/dc/1.0/description.php | 21 + .../SPtests/rss/0.90/dc/1.1/description.php | 21 + .../SPtests/rss/0.90/description.php | 21 + .../rss/0.91-netscape/atom/0.3/content.php | 24 + .../rss/0.91-netscape/atom/0.3/summary.php | 24 + .../rss/0.91-netscape/atom/1.0/content.php | 24 + .../rss/0.91-netscape/atom/1.0/summary.php | 24 + .../rss/0.91-netscape/dc/1.0/description.php | 24 + .../rss/0.91-netscape/dc/1.1/description.php | 24 + .../SPtests/rss/0.91-netscape/description.php | 24 + .../rss/0.91-userland/atom/0.3/content.php | 23 + .../rss/0.91-userland/atom/0.3/summary.php | 23 + .../rss/0.91-userland/atom/1.0/content.php | 23 + .../rss/0.91-userland/atom/1.0/summary.php | 23 + .../rss/0.91-userland/dc/1.0/description.php | 23 + .../rss/0.91-userland/dc/1.1/description.php | 23 + .../SPtests/rss/0.91-userland/description.php | 23 + .../SPtests/rss/0.92/atom/0.3/content.php | 23 + .../SPtests/rss/0.92/atom/0.3/summary.php | 23 + .../SPtests/rss/0.92/atom/1.0/content.php | 23 + .../SPtests/rss/0.92/atom/1.0/summary.php | 23 + .../SPtests/rss/0.92/dc/1.0/description.php | 23 + .../SPtests/rss/0.92/dc/1.1/description.php | 23 + .../SPtests/rss/0.92/description.php | 23 + .../SPtests/rss/1.0/atom/0.3/content.php | 21 + .../SPtests/rss/1.0/atom/0.3/summary.php | 21 + .../SPtests/rss/1.0/atom/1.0/content.php | 21 + .../SPtests/rss/1.0/atom/1.0/summary.php | 21 + .../SPtests/rss/1.0/dc/1.0/description.php | 21 + .../SPtests/rss/1.0/dc/1.1/description.php | 21 + .../SPtests/rss/1.0/description.php | 21 + .../SPtests/rss/2.0/atom/0.3/content.php | 23 + .../SPtests/rss/2.0/atom/0.3/summary.php | 23 + .../SPtests/rss/2.0/atom/1.0/content.php | 23 + .../SPtests/rss/2.0/atom/1.0/summary.php | 23 + .../SPtests/rss/2.0/dc/1.0/description.php | 23 + .../SPtests/rss/2.0/dc/1.1/description.php | 23 + .../SPtests/rss/2.0/description.php | 23 + .../SPtests/atom/0.3/name.php | 23 + .../SPtests/atom/1.0/name.php | 23 + .../SPtests/rss/0.90/atom/0.3/name.php | 23 + .../SPtests/rss/0.90/atom/1.0/name.php | 23 + .../rss/0.91-netscape/atom/0.3/name.php | 26 + .../rss/0.91-netscape/atom/1.0/name.php | 26 + .../rss/0.91-userland/atom/0.3/name.php | 25 + .../rss/0.91-userland/atom/1.0/name.php | 25 + .../SPtests/rss/0.92/atom/0.3/name.php | 25 + .../SPtests/rss/0.92/atom/1.0/name.php | 25 + .../SPtests/rss/1.0/atom/0.3/name.php | 23 + .../SPtests/rss/1.0/atom/1.0/name.php | 23 + .../SPtests/rss/2.0/atom/0.3/name.php | 25 + .../SPtests/rss/2.0/atom/1.0/name.php | 25 + .../SPtests/atom/0.3/created.php | 21 + .../SPtests/atom/0.3/dc/1.0/date.php | 21 + .../SPtests/atom/0.3/dc/1.1/date.php | 21 + .../SPtests/atom/0.3/issued.php | 21 + .../SPtests/atom/0.3/modified.php | 21 + .../SPtests/atom/1.0/dc/1.0/date.php | 21 + .../SPtests/atom/1.0/dc/1.1/date.php | 21 + .../SPtests/atom/1.0/published.php | 21 + .../SPtests/atom/1.0/updated.php | 21 + .../first_item_date/SPtests/bugs/876.0.php | 23 + .../SPtests/rss/0.90/atom/0.3/created.php | 21 + .../SPtests/rss/0.90/atom/0.3/issued.php | 21 + .../SPtests/rss/0.90/atom/0.3/modified.php | 21 + .../SPtests/rss/0.90/atom/1.0/published.php | 21 + .../SPtests/rss/0.90/atom/1.0/updated.php | 21 + .../SPtests/rss/0.90/dc/1.0/date.php | 21 + .../SPtests/rss/0.90/dc/1.1/date.php | 21 + .../rss/0.91-netscape/atom/0.3/created.php | 24 + .../rss/0.91-netscape/atom/0.3/issued.php | 24 + .../rss/0.91-netscape/atom/0.3/modified.php | 24 + .../rss/0.91-netscape/atom/1.0/published.php | 24 + .../rss/0.91-netscape/atom/1.0/updated.php | 24 + .../SPtests/rss/0.91-netscape/dc/1.0/date.php | 24 + .../SPtests/rss/0.91-netscape/dc/1.1/date.php | 24 + .../rss/0.91-userland/atom/0.3/created.php | 23 + .../rss/0.91-userland/atom/0.3/issued.php | 23 + .../rss/0.91-userland/atom/0.3/modified.php | 23 + .../rss/0.91-userland/atom/1.0/published.php | 23 + .../rss/0.91-userland/atom/1.0/updated.php | 23 + .../SPtests/rss/0.91-userland/dc/1.0/date.php | 23 + .../SPtests/rss/0.91-userland/dc/1.1/date.php | 23 + .../SPtests/rss/0.92/atom/0.3/created.php | 23 + .../SPtests/rss/0.92/atom/0.3/issued.php | 23 + .../SPtests/rss/0.92/atom/0.3/modified.php | 23 + .../SPtests/rss/0.92/atom/1.0/published.php | 23 + .../SPtests/rss/0.92/atom/1.0/updated.php | 23 + .../SPtests/rss/0.92/dc/1.0/date.php | 23 + .../SPtests/rss/0.92/dc/1.1/date.php | 23 + .../SPtests/rss/1.0/atom/0.3/created.php | 21 + .../SPtests/rss/1.0/atom/0.3/issued.php | 21 + .../SPtests/rss/1.0/atom/0.3/modified.php | 21 + .../SPtests/rss/1.0/atom/1.0/published.php | 21 + .../SPtests/rss/1.0/atom/1.0/updated.php | 21 + .../SPtests/rss/1.0/dc/1.0/date.php | 21 + .../SPtests/rss/1.0/dc/1.1/date.php | 21 + .../SPtests/rss/2.0/atom/0.3/created.php | 23 + .../SPtests/rss/2.0/atom/0.3/issued.php | 23 + .../SPtests/rss/2.0/atom/0.3/modified.php | 23 + .../SPtests/rss/2.0/atom/1.0/published.php | 23 + .../SPtests/rss/2.0/atom/1.0/updated.php | 23 + .../SPtests/rss/2.0/dc/1.0/date.php | 23 + .../SPtests/rss/2.0/dc/1.1/date.php | 23 + .../SPtests/rss/2.0/pubdate.php | 23 + .../SPtests/atom/0.3/content.php | 21 + .../SPtests/atom/0.3/dc/1.0/description.php | 21 + .../SPtests/atom/0.3/dc/1.1/description.php | 21 + .../SPtests/atom/0.3/summary.php | 21 + .../SPtests/atom/1.0/content.php | 21 + .../SPtests/atom/1.0/dc/1.0/description.php | 21 + .../SPtests/atom/1.0/dc/1.1/description.php | 21 + .../SPtests/atom/1.0/summary.php | 21 + .../SPtests/rss/0.90/atom/0.3/content.php | 21 + .../SPtests/rss/0.90/atom/0.3/summary.php | 21 + .../SPtests/rss/0.90/atom/1.0/content.php | 21 + .../SPtests/rss/0.90/atom/1.0/summary.php | 21 + .../SPtests/rss/0.90/dc/1.0/description.php | 21 + .../SPtests/rss/0.90/dc/1.1/description.php | 21 + .../SPtests/rss/0.90/description.php | 21 + .../rss/0.91-netscape/atom/0.3/content.php | 24 + .../rss/0.91-netscape/atom/0.3/summary.php | 24 + .../rss/0.91-netscape/atom/1.0/content.php | 24 + .../rss/0.91-netscape/atom/1.0/summary.php | 24 + .../rss/0.91-netscape/dc/1.0/description.php | 24 + .../rss/0.91-netscape/dc/1.1/description.php | 24 + .../SPtests/rss/0.91-netscape/description.php | 24 + .../rss/0.91-userland/atom/0.3/content.php | 23 + .../rss/0.91-userland/atom/0.3/summary.php | 23 + .../rss/0.91-userland/atom/1.0/content.php | 23 + .../rss/0.91-userland/atom/1.0/summary.php | 23 + .../rss/0.91-userland/dc/1.0/description.php | 23 + .../rss/0.91-userland/dc/1.1/description.php | 23 + .../SPtests/rss/0.91-userland/description.php | 23 + .../SPtests/rss/0.92/atom/0.3/content.php | 23 + .../SPtests/rss/0.92/atom/0.3/summary.php | 23 + .../SPtests/rss/0.92/atom/1.0/content.php | 23 + .../SPtests/rss/0.92/atom/1.0/summary.php | 23 + .../SPtests/rss/0.92/dc/1.0/description.php | 23 + .../SPtests/rss/0.92/dc/1.1/description.php | 23 + .../SPtests/rss/0.92/description.php | 23 + .../SPtests/rss/1.0/atom/0.3/content.php | 21 + .../SPtests/rss/1.0/atom/0.3/summary.php | 21 + .../SPtests/rss/1.0/atom/1.0/content.php | 21 + .../SPtests/rss/1.0/atom/1.0/summary.php | 21 + .../SPtests/rss/1.0/dc/1.0/description.php | 21 + .../SPtests/rss/1.0/dc/1.1/description.php | 21 + .../SPtests/rss/1.0/description.php | 21 + .../SPtests/rss/2.0/atom/0.3/content.php | 23 + .../SPtests/rss/2.0/atom/0.3/summary.php | 23 + .../SPtests/rss/2.0/atom/1.0/content.php | 23 + .../SPtests/rss/2.0/atom/1.0/summary.php | 23 + .../SPtests/rss/2.0/dc/1.0/description.php | 23 + .../SPtests/rss/2.0/dc/1.1/description.php | 23 + .../SPtests/rss/2.0/description.php | 23 + .../SPtests/atom/0.3/dc/1.0/identifier.php | 21 + .../SPtests/atom/0.3/dc/1.1/identifier.php | 21 + .../first_item_id/SPtests/atom/0.3/id.php | 21 + .../SPtests/atom/1.0/dc/1.0/identifier.php | 21 + .../SPtests/atom/1.0/dc/1.1/identifier.php | 21 + .../first_item_id/SPtests/atom/1.0/id.php | 21 + .../SPtests/rss/0.90/atom/0.3/id.php | 21 + .../SPtests/rss/0.90/atom/1.0/id.php | 21 + .../SPtests/rss/0.90/dc/1.0/identifier.php | 21 + .../SPtests/rss/0.90/dc/1.1/identifier.php | 21 + .../SPtests/rss/0.91-netscape/atom/0.3/id.php | 24 + .../SPtests/rss/0.91-netscape/atom/1.0/id.php | 24 + .../rss/0.91-netscape/dc/1.0/identifier.php | 24 + .../rss/0.91-netscape/dc/1.1/identifier.php | 24 + .../SPtests/rss/0.91-userland/atom/0.3/id.php | 23 + .../SPtests/rss/0.91-userland/atom/1.0/id.php | 23 + .../rss/0.91-userland/dc/1.0/identifier.php | 23 + .../rss/0.91-userland/dc/1.1/identifier.php | 23 + .../SPtests/rss/0.92/atom/0.3/id.php | 23 + .../SPtests/rss/0.92/atom/1.0/id.php | 23 + .../SPtests/rss/0.92/dc/1.0/identifier.php | 23 + .../SPtests/rss/0.92/dc/1.1/identifier.php | 23 + .../SPtests/rss/1.0/atom/0.3/id.php | 21 + .../SPtests/rss/1.0/atom/1.0/id.php | 21 + .../SPtests/rss/1.0/dc/1.0/identifier.php | 21 + .../SPtests/rss/1.0/dc/1.1/identifier.php | 21 + .../SPtests/rss/2.0/atom/0.3/id.php | 23 + .../SPtests/rss/2.0/atom/1.0/id.php | 23 + .../SPtests/rss/2.0/dc/1.0/identifier.php | 23 + .../SPtests/rss/2.0/dc/1.1/identifier.php | 23 + .../first_item_id/SPtests/rss/2.0/guid.php | 23 + .../SPtests/atom/0.3/geo/lat.php | 22 + .../SPtests/atom/0.3/georss/point.php | 21 + .../SPtests/atom/1.0/geo/lat.php | 22 + .../SPtests/atom/1.0/georss/point.php | 21 + .../SPtests/rss/0.90/geo/lat.php | 22 + .../SPtests/rss/0.90/georss/point.php | 21 + .../SPtests/rss/0.91-netscape/geo/lat.php | 25 + .../rss/0.91-netscape/georss/point.php | 24 + .../SPtests/rss/0.91-userland/geo/lat.php | 24 + .../rss/0.91-userland/georss/point.php | 23 + .../SPtests/rss/0.92/geo/lat.php | 24 + .../SPtests/rss/0.92/georss/point.php | 23 + .../SPtests/rss/1.0/geo/lat.php | 22 + .../SPtests/rss/1.0/georss/point.php | 21 + .../SPtests/rss/2.0/geo/lat.php | 24 + .../SPtests/rss/2.0/georss/point.php | 23 + .../SPtests/atom/0.3/geo/long.php | 22 + .../SPtests/atom/0.3/georss/point.php | 21 + .../SPtests/atom/1.0/geo/long.php | 22 + .../SPtests/atom/1.0/georss/point.php | 21 + .../SPtests/rss/0.90/geo/long.php | 22 + .../SPtests/rss/0.90/georss/point.php | 21 + .../SPtests/rss/0.91-netscape/geo/long.php | 25 + .../rss/0.91-netscape/georss/point.php | 24 + .../SPtests/rss/0.91-userland/geo/long.php | 24 + .../rss/0.91-userland/georss/point.php | 23 + .../SPtests/rss/0.92/geo/long.php | 24 + .../SPtests/rss/0.92/georss/point.php | 23 + .../SPtests/rss/1.0/geo/long.php | 22 + .../SPtests/rss/1.0/georss/point.php | 21 + .../SPtests/rss/2.0/geo/long.php | 24 + .../SPtests/rss/2.0/georss/point.php | 23 + .../SPtests/atom/0.3/enclosure.php | 21 + .../SPtests/atom/0.3/link.php | 21 + .../SPtests/atom/1.0/enclosure.php | 21 + .../SPtests/atom/1.0/link.php | 21 + .../SPtests/bugs/10.0.php | 23 + .../SPtests/bugs/10.1.php | 23 + .../SPtests/bugs/10.2.php | 23 + .../SPtests/bugs/10.3.php | 23 + .../SPtests/bugs/156.0.php | 23 + .../SPtests/bugs/176.0.php | 23 + .../SPtests/bugs/176.1.php | 23 + .../SPtests/bugs/176.2.php | 23 + .../SPtests/bugs/640.0.php | 21 + .../SPtests/rss/0.90/atom/0.3/link.php | 21 + .../SPtests/rss/0.90/atom/1.0/link.php | 21 + .../SPtests/rss/0.90/link.php | 21 + .../rss/0.91-netscape/atom/0.3/link.php | 24 + .../rss/0.91-netscape/atom/1.0/link.php | 24 + .../SPtests/rss/0.91-netscape/link.php | 24 + .../rss/0.91-userland/0.91-userland.php | 23 + .../rss/0.91-userland/atom0.3-enclosure.php | 23 + .../SPtests/rss/0.91-userland/atom0.3.php | 23 + .../rss/0.91-userland/atom1.0-enclosure.php | 23 + .../SPtests/rss/0.91-userland/atom1.0.php | 23 + .../SPtests/rss/0.92/atom/0.3/link.php | 23 + .../SPtests/rss/0.92/atom/1.0/link.php | 23 + .../SPtests/rss/0.92/link.php | 23 + .../SPtests/rss/1.0/atom/0.3/link.php | 21 + .../SPtests/rss/1.0/atom/1.0/link.php | 21 + .../SPtests/rss/1.0/link.php | 21 + .../SPtests/rss/2.0/atom/0.3/link.php | 23 + .../SPtests/rss/2.0/atom/1.0/link.php | 23 + .../SPtests/rss/2.0/enclosure.php | 23 + .../SPtests/rss/2.0/link.php | 23 + .../SPtests/xmlbase/1.php | 21 + .../SPtests/xmlbase/2.php | 21 + .../SPtests/xmlbase/3.php | 21 + .../SPtests/atom/0.3/dc/1.0/title.php | 21 + .../SPtests/atom/0.3/dc/1.1/title.php | 21 + .../SPtests/atom/0.3/title.php | 21 + .../SPtests/atom/1.0/dc/1.0/title.php | 21 + .../SPtests/atom/1.0/dc/1.1/title.php | 21 + .../SPtests/atom/1.0/title.php | 21 + .../first_item_title/SPtests/bugs/174.0.php | 22 + .../SPtests/bugs/179.0.10.1.php | 30 + .../SPtests/bugs/179.0.10.2.php | 30 + .../SPtests/bugs/179.0.10.php | 30 + .../first_item_title/SPtests/bugs/270.0.php | 22 + .../first_item_title/SPtests/bugs/431.0.php | 26 + .../first_item_title/SPtests/bugs/431.1.php | 26 + .../first_item_title/SPtests/bugs/475.0.php | 24 + .../first_item_title/SPtests/bugs/475.1.php | 24 + .../first_item_title/SPtests/bugs/475.2.php | 24 + .../first_item_title/SPtests/bugs/475.3.php | 24 + .../first_item_title/SPtests/bugs/508.0.php | 23 + .../first_item_title/SPtests/bugs/508.1.php | 23 + .../first_item_title/SPtests/bugs/508.2.php | 23 + .../first_item_title/SPtests/bugs/508.3.php | 23 + .../first_item_title/SPtests/bugs/564.0.php | 21 + .../first_item_title/SPtests/bugs/629.0.php | 26 + .../first_item_title/SPtests/bugs/629.1.php | 26 + .../first_item_title/SPtests/bugs/666.0.php | 24 + .../first_item_title/SPtests/bugs/666.1.php | 24 + .../first_item_title/SPtests/bugs/828.0.php | 21 + .../first_item_title/SPtests/bugs/968.0.php | 22 + .../SPtests/entities/atom/0.3/1.1.php | 21 + .../SPtests/entities/atom/0.3/1.2.php | 21 + .../SPtests/entities/atom/0.3/1.3.php | 21 + .../SPtests/entities/atom/0.3/2.1.php | 21 + .../SPtests/entities/atom/0.3/2.2.php | 21 + .../SPtests/entities/atom/0.3/2.3.php | 21 + .../SPtests/entities/atom/0.3/3.1.php | 21 + .../SPtests/entities/atom/0.3/3.2.php | 21 + .../SPtests/entities/atom/0.3/3.3.php | 21 + .../SPtests/entities/atom/1.0/1.1.php | 21 + .../SPtests/entities/atom/1.0/1.2.php | 21 + .../SPtests/entities/atom/1.0/1.3.php | 21 + .../SPtests/entities/atom/1.0/2.1.php | 21 + .../SPtests/entities/atom/1.0/2.2.php | 21 + .../SPtests/entities/atom/1.0/2.3.php | 21 + .../SPtests/entities/atom/1.0/3.1.php | 21 + .../SPtests/entities/atom/1.0/3.2.php | 21 + .../SPtests/entities/atom/1.0/3.3.php | 21 + .../SPtests/entities/rss/0.90/1.php | 21 + .../SPtests/entities/rss/0.90/2.php | 21 + .../SPtests/entities/rss/0.90/3.php | 21 + .../SPtests/entities/rss/0.91-netscape/1.php | 24 + .../SPtests/entities/rss/0.91-netscape/2.php | 24 + .../SPtests/entities/rss/0.91-netscape/3.php | 24 + .../SPtests/entities/rss/0.91-userland/1.php | 23 + .../SPtests/entities/rss/0.91-userland/2.php | 23 + .../SPtests/entities/rss/0.91-userland/3.php | 23 + .../SPtests/entities/rss/0.92/1.php | 23 + .../SPtests/entities/rss/0.92/2.php | 23 + .../SPtests/entities/rss/0.92/3.php | 23 + .../SPtests/entities/rss/1.0/1.php | 21 + .../SPtests/entities/rss/1.0/2.php | 21 + .../SPtests/entities/rss/1.0/3.php | 21 + .../SPtests/entities/rss/2.0/1.php | 23 + .../SPtests/entities/rss/2.0/2.php | 23 + .../SPtests/entities/rss/2.0/3.php | 23 + .../SPtests/rss/0.90/atom/0.3/title.php | 21 + .../SPtests/rss/0.90/atom/1.0/title.php | 21 + .../SPtests/rss/0.90/dc/1.0/title.php | 21 + .../SPtests/rss/0.90/dc/1.1/title.php | 21 + .../SPtests/rss/0.90/title.php | 21 + .../rss/0.91-netscape/atom/0.3/title.php | 24 + .../rss/0.91-netscape/atom/1.0/title.php | 24 + .../rss/0.91-netscape/dc/1.0/title.php | 24 + .../rss/0.91-netscape/dc/1.1/title.php | 24 + .../SPtests/rss/0.91-netscape/title.php | 24 + .../rss/0.91-userland/atom/0.3/title.php | 23 + .../rss/0.91-userland/atom/1.0/title.php | 23 + .../rss/0.91-userland/dc/1.0/title.php | 23 + .../rss/0.91-userland/dc/1.1/title.php | 23 + .../SPtests/rss/0.91-userland/title.php | 23 + .../SPtests/rss/0.92/atom/0.3/title.php | 23 + .../SPtests/rss/0.92/atom/1.0/title.php | 23 + .../SPtests/rss/0.92/dc/1.0/title.php | 23 + .../SPtests/rss/0.92/dc/1.1/title.php | 23 + .../SPtests/rss/0.92/title.php | 23 + .../SPtests/rss/1.0/atom/0.3/title.php | 21 + .../SPtests/rss/1.0/atom/1.0/title.php | 21 + .../SPtests/rss/1.0/dc/1.0/title.php | 21 + .../SPtests/rss/1.0/dc/1.1/title.php | 21 + .../SPtests/rss/1.0/title.php | 21 + .../SPtests/rss/2.0/atom/0.3/title.php | 23 + .../SPtests/rss/2.0/atom/1.0/title.php | 23 + .../SPtests/rss/2.0/dc/1.0/title.php | 23 + .../SPtests/rss/2.0/dc/1.1/title.php | 23 + .../SPtests/rss/2.0/title.php | 23 + .../first_item_title/SPtests/xmlbase/1.php | 21 + simplepie/test/functions.php | 486 + .../SPtests/rss/2.0/itunes_channel_block.php | 24 + .../rss/2.0/itunes_channel_block_default.php | 23 + .../rss/2.0/itunes_channel_block_reverse.php | 24 + simplepie/test/logo.png | Bin 0 -> 4819 bytes simplepie/test/test.php | 205 + simplepie/test/unit_test/unit_test.php | 126 + simplepie/test/unit_test/unit_test2.php | 630 + .../html/cdata.php | 38 + .../html/entity.php | 38 + .../html/ncr.php | 38 + .../text/cdata.php | 38 + .../text/entity.php | 37 + .../text/ncr.php | 37 + .../xhtml/entity.php | 37 + .../xhtml/ncr.php | 37 + 909 files changed, 38245 insertions(+) create mode 100644 simplepie/LICENSE.txt create mode 100644 simplepie/README.markdown create mode 100644 simplepie/compatibility_test/COMPATIBILITY README.txt create mode 100644 simplepie/compatibility_test/sp_compatibility_test.php create mode 100644 simplepie/create.php create mode 100644 simplepie/db.sql create mode 100755 simplepie/demo/cli_test.php create mode 100644 simplepie/demo/for_the_demo/alternate_favicon.png create mode 100644 simplepie/demo/for_the_demo/background_blockquote.png create mode 100644 simplepie/demo/for_the_demo/background_menuitem.gif create mode 100644 simplepie/demo/for_the_demo/background_menuitem_off.gif create mode 100644 simplepie/demo/for_the_demo/background_menuitem_shadow.gif create mode 100644 simplepie/demo/for_the_demo/favicons/alternate.png create mode 100644 simplepie/demo/for_the_demo/favicons/blinklist.png create mode 100644 simplepie/demo/for_the_demo/favicons/blogmarks.png create mode 100644 simplepie/demo/for_the_demo/favicons/delicious.png create mode 100644 simplepie/demo/for_the_demo/favicons/digg.png create mode 100644 simplepie/demo/for_the_demo/favicons/magnolia.png create mode 100644 simplepie/demo/for_the_demo/favicons/myweb2.png create mode 100644 simplepie/demo/for_the_demo/favicons/newsvine.png create mode 100644 simplepie/demo/for_the_demo/favicons/reddit.png create mode 100644 simplepie/demo/for_the_demo/favicons/segnalo.png create mode 100644 simplepie/demo/for_the_demo/favicons/simpy.png create mode 100644 simplepie/demo/for_the_demo/favicons/spurl.png create mode 100644 simplepie/demo/for_the_demo/favicons/technorati.png create mode 100644 simplepie/demo/for_the_demo/favicons/wists.png create mode 100644 simplepie/demo/for_the_demo/feed.png create mode 100644 simplepie/demo/for_the_demo/logo_simplepie_demo.png create mode 100644 simplepie/demo/for_the_demo/lucida-grande-bold.swf create mode 100644 simplepie/demo/for_the_demo/mediaplayer.swf create mode 100755 simplepie/demo/for_the_demo/mediaplayer_readme.htm create mode 100644 simplepie/demo/for_the_demo/mini_podcast.png create mode 100644 simplepie/demo/for_the_demo/place_audio.png create mode 100644 simplepie/demo/for_the_demo/place_video.png create mode 100644 simplepie/demo/for_the_demo/sIFR-print.css create mode 100644 simplepie/demo/for_the_demo/sIFR-screen.css create mode 100644 simplepie/demo/for_the_demo/sifr-config.js create mode 100644 simplepie/demo/for_the_demo/sifr.js create mode 100644 simplepie/demo/for_the_demo/simplepie.css create mode 100644 simplepie/demo/for_the_demo/sleight.js create mode 100644 simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png create mode 100644 simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png create mode 100644 simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as create mode 100644 simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt create mode 100644 simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as create mode 100644 simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as create mode 100644 simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla create mode 100644 simplepie/demo/for_the_demo/top_gradient.gif create mode 100644 simplepie/demo/for_the_demo/verdana.swf create mode 100644 simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf create mode 100644 simplepie/demo/handler_image.php create mode 100644 simplepie/demo/index.php create mode 100644 simplepie/demo/minimalistic.php create mode 100644 simplepie/demo/multifeeds.php create mode 100644 simplepie/demo/test.php create mode 100644 simplepie/idn/LICENCE create mode 100644 simplepie/idn/ReadMe.txt create mode 100644 simplepie/idn/idna_convert.class.php create mode 100644 simplepie/idn/npdata.ser create mode 100644 simplepie/simplepie.inc create mode 100644 simplepie/test/absolutize/RFC3986.5.4/README create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/1.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/10.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/11.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/12.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/13.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/14.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/15.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/16.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/17.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/18.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/19.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/2.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/3.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/4.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/5.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/6.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/7.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/8.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/abnormal/9.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/base.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/1.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/10.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/11.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/12.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/13.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/14.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/15.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/16.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/17.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/18.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/19.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/2.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/20.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/21.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/22.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/23.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/3.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/4.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/5.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/6.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/7.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/8.php create mode 100644 simplepie/test/absolutize/RFC3986.5.4/normal/9.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/1091.0.1.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/1091.0.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/274.0.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/274.1.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/274.2.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/274.3.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/579.0.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.0.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.1.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.2.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.3.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.4.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.5.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.6.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.7.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/691.8.php create mode 100644 simplepie/test/absolutize/SPtests/bugs/pct_encoding_invalid_second_char.php create mode 100644 simplepie/test/background.gif create mode 100644 simplepie/test/date/RFC3339/1.php create mode 100644 simplepie/test/date/RFC3339/2.php create mode 100644 simplepie/test/date/RFC3339/3.php create mode 100644 simplepie/test/date/RFC3339/README create mode 100644 simplepie/test/date/SPtests/RFC2822/invalid/four_digit_year.php create mode 100644 simplepie/test/date/SPtests/RFC2822/invalid/full_name_of_day.php create mode 100644 simplepie/test/date/SPtests/RFC2822/invalid/invalid_day.php create mode 100644 simplepie/test/date/SPtests/RFC2822/invalid/invalid_timezone.php create mode 100644 simplepie/test/date/SPtests/RFC2822/invalid/mismatch_name_of_day.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/1.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/10.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/11.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/12.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/13.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/14.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/15.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/16.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/17.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/18.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/19.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/2.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/20.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/21.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/22.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/23.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/24.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/25.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/26.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/27.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/28.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/29.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/3.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/30.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/31.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/32.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/33.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/34.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/35.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/36.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/37.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/38.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/39.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/4.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/40.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/41.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/42.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/43.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/44.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/5.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/6.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/7.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/8.php create mode 100644 simplepie/test/date/SPtests/RFC2822/valid/9.php create mode 100644 simplepie/test/date/SPtests/bugs/157.0.php create mode 100644 simplepie/test/date/SPtests/bugs/259.0.php create mode 100644 simplepie/test/date/W3CDTF/1.php create mode 100644 simplepie/test/date/W3CDTF/2.php create mode 100644 simplepie/test/date/W3CDTF/README create mode 100644 simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/bugs/21.0.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.1/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/label.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/term.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/2.0/category.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.0/subject.php create mode 100644 simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.1/subject.php create mode 100644 simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.90/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/copyright.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-userland/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-userland/copyright.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.92/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.92/copyright.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/1.0/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.1/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/2.0/atom/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/2.0/copyright.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.0/rights.php create mode 100644 simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.1/rights.php create mode 100644 simplepie/test/feed_description/SPtests/atom/0.3/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/atom/0.3/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/atom/1.0/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/atom/1.0/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.90/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.90/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.90/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.90/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.90/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-netscape/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.91-userland/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.92/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.92/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.92/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.92/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/0.92/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/1.0/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/rss/1.0/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/1.0/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/1.0/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/2.0/atom/0.3/tagline.php create mode 100644 simplepie/test/feed_description/SPtests/rss/2.0/atom/1.0/subtitle.php create mode 100644 simplepie/test/feed_description/SPtests/rss/2.0/dc/1.0/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/2.0/dc/1.1/description.php create mode 100644 simplepie/test/feed_description/SPtests/rss/2.0/description.php create mode 100644 simplepie/test/feed_image_height/SPtests/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.90/url-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/height.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/url-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-userland/height.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.91-userland/url-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.92/height.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/0.92/url-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/1.0/url-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/2.0/height.php create mode 100644 simplepie/test/feed_image_height/SPtests/rss/2.0/url-default.php create mode 100644 simplepie/test/feed_image_link/SPtests/rss/0.90/link.php create mode 100644 simplepie/test/feed_image_link/SPtests/rss/0.91-netscape/link.php create mode 100644 simplepie/test/feed_image_link/SPtests/rss/0.91-userland/link.php create mode 100644 simplepie/test/feed_image_link/SPtests/rss/0.92/link.php create mode 100644 simplepie/test/feed_image_link/SPtests/rss/1.0/link.php create mode 100644 simplepie/test/feed_image_link/SPtests/rss/2.0/link.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.1/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.90/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.1/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.1/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.91-userland/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.1/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/0.92/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.1/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.0/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.1/title.php create mode 100644 simplepie/test/feed_image_title/SPtests/rss/2.0/title.php create mode 100644 simplepie/test/feed_image_url/SPtests/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.90/url.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/url.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.91-userland/url.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/0.92/url.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/1.0/url.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/icon.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/logo.php create mode 100644 simplepie/test/feed_image_url/SPtests/rss/2.0/url.php create mode 100644 simplepie/test/feed_image_width/SPtests/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.90/url-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/url-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/width.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-userland/url-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.91-userland/width.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.92/url-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/0.92/width.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/1.0/url-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/icon-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/logo-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/2.0/url-default.php create mode 100644 simplepie/test/feed_image_width/SPtests/rss/2.0/width.php create mode 100644 simplepie/test/feed_language/SPtests/atom/0.3/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/atom/0.3/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/atom/0.3/xml_lang.php create mode 100644 simplepie/test/feed_language/SPtests/atom/1.0/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/atom/1.0/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/atom/1.0/xml_lang.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.90/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.90/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.91-netscape/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.91-userland/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.92/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.92/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/0.92/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/1.0/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/1.0/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/2.0/dc/1.0/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/2.0/dc/1.1/language.php create mode 100644 simplepie/test/feed_language/SPtests/rss/2.0/language.php create mode 100644 simplepie/test/feed_link/SPtests/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/atom/0.3/link_@rel_alternate.php create mode 100644 simplepie/test/feed_link/SPtests/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_absolute_iri.php create mode 100644 simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_alternate.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.90/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.90/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.90/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.91-netscape/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.91-userland/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.92/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.92/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/0.92/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/1.0/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/1.0/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/2.0/atom/0.3/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/2.0/atom/1.0/link.php create mode 100644 simplepie/test/feed_link/SPtests/rss/2.0/link.php create mode 100644 simplepie/test/feed_title/SPtests/atom/0.3/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/atom/0.3/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/atom/1.0/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/atom/1.0/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/16.0.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/174.0.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/18.0.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/18.1.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/20.0.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/20.1.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/20.2.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/272.0.php create mode 100644 simplepie/test/feed_title/SPtests/bugs/272.1.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.90/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.90/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.90/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.90/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.90/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-netscape/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.91-userland/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.92/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.92/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.92/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.92/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/0.92/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/1.0/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/1.0/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/1.0/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/1.0/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/2.0/atom/0.3/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/2.0/atom/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/2.0/dc/1.0/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/2.0/dc/1.1/title.php create mode 100644 simplepie/test/feed_title/SPtests/rss/2.0/title.php create mode 100644 simplepie/test/feed_title/rss-profile/1.php create mode 100644 simplepie/test/feed_title/rss-profile/2.php create mode 100644 simplepie/test/feed_title/rss-profile/3.php create mode 100644 simplepie/test/feed_title/rss-profile/4.php create mode 100644 simplepie/test/feed_title/rss-profile/5.php create mode 100644 simplepie/test/feed_title/rss-profile/6.php create mode 100644 simplepie/test/feed_title/rss-profile/7.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/0.3/feed.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/1.0/feed.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/atom/1.0/source.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/0.3/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/1.0/name.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/2.0/author.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.0/creator.php create mode 100644 simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.1/creator.php create mode 100644 simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/bugs/21.0.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.92/category.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/label.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/term.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/2.0/category.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.0/subject.php create mode 100644 simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.1/subject.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.90/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-netscape/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.91-userland/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/0.92/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/content.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.0/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.1/description.php create mode 100644 simplepie/test/first_item_content/SPtests/rss/2.0/description.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/atom/1.0/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/1.0/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/1.0/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/1.0/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/1.0/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/1.0/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/0.3/name.php create mode 100644 simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/1.0/name.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/bugs/876.0.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/created.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/issued.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/modified.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/published.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/updated.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.0/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.1/date.php create mode 100644 simplepie/test/first_item_date/SPtests/rss/2.0/pubdate.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.90/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-netscape/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.91-userland/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/0.92/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/content.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/summary.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.0/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.1/description.php create mode 100644 simplepie/test/first_item_description/SPtests/rss/2.0/description.php create mode 100644 simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.90/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.90/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.92/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.92/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/1.0/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/1.0/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/2.0/atom/0.3/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/2.0/atom/1.0/id.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.0/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.1/identifier.php create mode 100644 simplepie/test/first_item_id/SPtests/rss/2.0/guid.php create mode 100644 simplepie/test/first_item_latitude/SPtests/atom/0.3/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/atom/0.3/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/atom/1.0/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/atom/1.0/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.90/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.90/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.92/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/0.92/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/1.0/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/1.0/georss/point.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/2.0/geo/lat.php create mode 100644 simplepie/test/first_item_latitude/SPtests/rss/2.0/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/atom/0.3/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/atom/0.3/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/atom/1.0/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/atom/1.0/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.90/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.90/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.92/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/0.92/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/1.0/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/1.0/georss/point.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/2.0/geo/long.php create mode 100644 simplepie/test/first_item_longitude/SPtests/rss/2.0/georss/point.php create mode 100644 simplepie/test/first_item_permalink/SPtests/atom/0.3/enclosure.php create mode 100644 simplepie/test/first_item_permalink/SPtests/atom/0.3/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/atom/1.0/enclosure.php create mode 100644 simplepie/test/first_item_permalink/SPtests/atom/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/10.0.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/10.1.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/10.2.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/10.3.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/156.0.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/176.0.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/176.1.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/176.2.php create mode 100644 simplepie/test/first_item_permalink/SPtests/bugs/640.0.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/0.3/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.90/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/0.3/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/0.91-userland.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3-enclosure.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0-enclosure.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/0.3/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/0.92/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/0.3/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/0.3/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/1.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/2.0/enclosure.php create mode 100644 simplepie/test/first_item_permalink/SPtests/rss/2.0/link.php create mode 100644 simplepie/test/first_item_permalink/SPtests/xmlbase/1.php create mode 100644 simplepie/test/first_item_permalink/SPtests/xmlbase/2.php create mode 100644 simplepie/test/first_item_permalink/SPtests/xmlbase/3.php create mode 100644 simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/174.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/179.0.10.1.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/179.0.10.2.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/179.0.10.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/270.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/431.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/431.1.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/475.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/475.1.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/475.2.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/475.3.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/508.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/508.1.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/508.2.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/508.3.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/564.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/629.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/629.1.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/666.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/666.1.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/828.0.php create mode 100644 simplepie/test/first_item_title/SPtests/bugs/968.0.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.90/1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.90/2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.90/3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.92/1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.92/2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/0.92/3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/1.0/1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/1.0/2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/1.0/3.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/2.0/1.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/2.0/2.php create mode 100644 simplepie/test/first_item_title/SPtests/entities/rss/2.0/3.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.90/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.90/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.90/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-netscape/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.91-userland/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.92/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.92/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/0.92/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/1.0/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/1.0/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/2.0/atom/0.3/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/2.0/atom/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.1/title.php create mode 100644 simplepie/test/first_item_title/SPtests/rss/2.0/title.php create mode 100644 simplepie/test/first_item_title/SPtests/xmlbase/1.php create mode 100644 simplepie/test/functions.php create mode 100644 simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block.php create mode 100644 simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_default.php create mode 100644 simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_reverse.php create mode 100644 simplepie/test/logo.png create mode 100644 simplepie/test/test.php create mode 100644 simplepie/test/unit_test/unit_test.php create mode 100644 simplepie/test/unit_test/unit_test2.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/cdata.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/entity.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/ncr.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/cdata.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/entity.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/ncr.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/entity.php create mode 100644 simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/ncr.php diff --git a/simplepie/LICENSE.txt b/simplepie/LICENSE.txt new file mode 100644 index 0000000000..a822a4bd98 --- /dev/null +++ b/simplepie/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright (c) 2004-2007, Ryan Parman and Geoffrey Sneddon. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + * Neither the name of the SimplePie Team nor the names of its contributors may be used + to endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS +AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/simplepie/README.markdown b/simplepie/README.markdown new file mode 100644 index 0000000000..e5ca021ced --- /dev/null +++ b/simplepie/README.markdown @@ -0,0 +1,53 @@ +# SimplePie + +## Authors and contributors + +* [Ryan Parman](http://ryanparman.com) +* [Geoffrey Sneddon](http://gsnedders.com) +* [Ryan McCue](http://ryanmccue.info) +* [Michael Shipley](http://michaelpshipley.com) +* [Steve Minutillo](http://minutillo.com/steve/) + + +## License + +[New BSD license](http://www.opensource.org/licenses/bsd-license.php) + + +## Project status + +SimplePie is currently maintained by Ryan McCue. + +At the moment, there isn't a lot of active development happening. If the community decides that SimplePie is a valuable tool, then the community will come together to maintain it into the future. + +If you're interested in getting involved with SimplePie, please get in touch with Ryan McCue. + + +## What comes in the package? + +1. `simplepie.inc` - The SimplePie library. This is all that's required for your pages. +2. `README.markdown` - This document. +3. `LICENSE.txt` - A copy of the BSD license. +4. `compatibility_test/` - The SimplePie compatibility test that checks your server for required settings. +5. `demo/` - A basic feed reader demo that shows off some of SimplePie's more noticable features. +6. `idn/` - A third-party library that SimplePie can optionally use to understand Internationalized Domain Names (IDNs). +7. `test/` - SimplePie's unit test suite. + + +## To start the demo + +1. Upload this package to your webserver. +2. Make sure that the cache folder inside of the demo folder is server-writable. +3. Navigate your browser to the demo folder. + + +## Need support? + +For further setup and install documentation, function references, etc., visit: +[http://simplepie.org/wiki/](http://simplepie.org/wiki/) + +For bug reports and feature requests, visit: +[http://github.com/rmccue/simplepie/issues](http://github.com/rmccue/simplepie/issues) + +Support mailing list -- powered by users, for users. +[http://tech.groups.yahoo.com/group/simplepie-support/](http://tech.groups.yahoo.com/group/simplepie-support/) diff --git a/simplepie/compatibility_test/COMPATIBILITY README.txt b/simplepie/compatibility_test/COMPATIBILITY README.txt new file mode 100644 index 0000000000..5b24989927 --- /dev/null +++ b/simplepie/compatibility_test/COMPATIBILITY README.txt @@ -0,0 +1,7 @@ +SIMPLEPIE COMPATIBILITY TEST + +1) Upload sp_compatibility_test.php to the web-accessible root of your website. +For example, if your website is www.example.com, upload it so that you can get +to it at www.example.com/sp_compatibility_test.php + +2) Open your web browser and go to the page you just uploaded. \ No newline at end of file diff --git a/simplepie/compatibility_test/sp_compatibility_test.php b/simplepie/compatibility_test/sp_compatibility_test.php new file mode 100644 index 0000000000..a7a7f5fde2 --- /dev/null +++ b/simplepie/compatibility_test/sp_compatibility_test.php @@ -0,0 +1,330 @@ +<?php +if (isset($_GET['logopng'])) +{ + $data='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'; + header('Content-type: image/png'); + echo base64_decode($data); + exit; +} +else if (isset($_GET['background'])) +{ + $data='R0lGODlhMAEeAeYAAP///8ni6cTf5+72+PD3+c3k6+nz9ufy9ev099Pn7bnZ48bg6LfY4uHv8/r8/f3+/v7//7bX4cjh6fj7/Mvj6vz9/rva4+z19/X6+/f7/Pn8/fb6+7jZ4vv9/bra473b5Lzb5LXX4b7c5b/c5e31+NTo7tvs8dfq7/H3+bjY4tnq79Hm7c/l69nr8PL4+t7t8sDd5cLe5uPw9Nvr8Mri6fP4+tLn7er099Hm7O/2+dDm7OTw9OXx9Nbp7tbp7+Lv8+Du8szj6sXg57bY4d3s8djq7+jz9tzs8cPe58fh6M7k68Pf5+by9fz+/sDd5vT5+vT5+97t8bbY4trr8P7+/v7+/+Pw8+Xx9dXo7sHe5vH4+fP5+sHd5t/u8s/l7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAwAR4BAAf/gCGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKNEaWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExbBDyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7KUuHi4+Tl5ufo6err7O3u7/Dx8vP09fb34wz6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2osmKKjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qc+ZGDzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1aAKsmrdyrWr169gw4odS7as2bNo06pdy7at27dw/+PKnUu3rt27ePOS9cC3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sz5sIXPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fqkEIH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOLb/6hvPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFgifCAgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okoTjjCiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5P+SNsLg5JNQRinllFRWaeWVWGap5ZZcdunll2CGKeaYZELpxJlopqnmmmy26eabcMYp55x01mnnnXjmqeeefPaZJheABirooIQWauihiCaq6KKMNuroo5BGKumklFZqqaBZZKrpppx26umnoIYq6qiklmrqqaimquqqrLbq6qubxiDrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHI0orEssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghtvsEuSWa+656Kar7rrstuvuu/DGK++89NZr77345quvuQL06++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPHGHHeMsBAghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNdss8gL5Kzzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGdNdBJcd+3112CHLfbYZJdt9tlop6322my37fbbcMctt9cS1G333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFcOeACYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuI9Ow+689+7778AHL/zwxBdv/PHIJ6/88sw37/zz0EffOwXUV2/99dhnr/323Hfv/ffghy/+//jkl2/++einr/767Lfv/vvwxy///PR/H8T9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAbmrwAQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTDcoBJmSMMa2vCGOMyhDnfIwx768IdADKIQh0jEIhrxiEhMYg1ZwMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxid6IUymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73eEYd+PGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSUlA4uCSmMykJjfJyU568v+ToAylKEdJylKa8pSoTKUqV8nKVmZyBbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhpTljZIpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm8tMgDjHSc5ymvOc6EynOtfJzna6853wjKc850nPetrznvjMpz73yc9++vOfAA2oQNtZgoIa9KAITahCF8rQhjr0oRCNqEQnStGKWvSiGM2oRjd6UCx49KMgDalIR0rSkpr0pChNqUpXytKWuvSlMI2pTGdKU5D24KY4zalOd8rTnvr0p0ANqlCHStSiGvWoSE2qUpfK1Kbm1AdQjapUp0rVqlr1qlj/zapWt8rVrnr1q2ANq1jHStaymlWqJ0irWtfK1ra69a1wjatc50rXutr1rnjNq173yte++vWvay2CYAdL2MIa9rCITaxiF8vYxjr2sZCNrGQnS9nKWvaymCWsCjbL2c569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI1tZ1tA29ra9ra4za1ud8vb3vr2t8ANrnCHS9ziGve4yE2ucm07heY697nQja50p0vd6lr3utjNrna3y93ueve74A2veMf73BmY97zoTa9618ve9rr3vfCNr3znS9/62ve++M2vfvfLX/Sa4L8ADrCAB0zgAhv4wAhOsIIXzOAGO/jBEI6w/4QnTOEKB/gIGM6whjfM4Q57+MMgDrGIR0ziEpv4xChOsYpXzOIWu1jDRIixjGdM4xrb+MY4zrGOd8zjHvv4x0AOspCHTOQiG/nIM46CkpfM5CY7+clQjrKUp0zlKlv5yljOspa3zOUue/nLYGbyC8ZM5jKb+cxoTrOa18zmNrv5zXCOs5znTOc62/nOeM5zmbvA5z77+c+ADrSgB03oQhv60IhOtKIXzehGO/rRkI60pP0MhEpb+tKYzrSmN83pTnv606AOtahHTepSm/rUqE61qld96Qa4+tWwjrWsZ03rWtv61rjOta53zete+/rXwA62sIdN7GIb+9jITrayl//N7GY7O9c/iLa0p03talv72tjOtra3ze1ue/vb4A63uMdN7nKb+9zTtoK6183udrv73fCOt7znTe962/ve+M63vvfN7377+98AZ7cMBk7wghv84AhPuMIXzvCGO/zhEI+4xCdO8Ypb/OIYz3jBd8Dxjnv84yAPuchHTvKSm/zkKE+5ylfO8pa7/OUwj7nMPc6Dmtv85jjPuc53zvOe+/znQA+60IdO9KIb/ehIT7rSl37zKzj96VCPutSnTvWqW/3qWM+61rfO9a57/etgD7vYx052qDPh7GhPu9rXzva2u/3tcI+73OdO97rb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'; + header('Content-type: image/gif'); + echo base64_decode($data); + exit; +} + +$php_ok = (function_exists('version_compare') && version_compare(phpversion(), '4.3.0', '>=')); +$pcre_ok = extension_loaded('pcre'); +$curl_ok = function_exists('curl_exec'); +$zlib_ok = extension_loaded('zlib'); +$mbstring_ok = extension_loaded('mbstring'); +$iconv_ok = extension_loaded('iconv'); +if (extension_loaded('xmlreader')) +{ + $xml_ok = true; +} +elseif (extension_loaded('xml')) +{ + $parser_check = xml_parser_create(); + xml_parse_into_struct($parser_check, '<foo>&</foo>', $values); + xml_parser_free($parser_check); + $xml_ok = isset($values[0]['value']); +} +else +{ + $xml_ok = false; +} + +header('Content-type: text/html; charset=UTF-8'); + +?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> + +<html lang="en"> +<head> +<title>SimplePie: Server Compatibility Test 1.2</title> + +<style type="text/css"> +body { + font:14px/1.4em "Lucida Grande", Verdana, Arial, Helvetica, Clean, Sans, sans-serif; + letter-spacing:0px; + color:#333; + margin:0; + padding:0; + background:#fff url(<?php echo pathinfo(__FILE__, PATHINFO_BASENAME); ?>?background) repeat-x top left; +} + +div#site { + width:550px; + margin:20px auto 0 auto; +} + +a { + color:#000; + text-decoration:underline; + padding:0 1px; +} + +a:hover { + color:#fff; + background-color:#333; + text-decoration:none; + padding:0 1px; +} + +p { + margin:0; + padding:5px 0; +} + +em { + font-style:normal; + background-color:#ffc; +} + +ul, ol { + margin:10px 0 10px 20px; + padding:0 0 0 15px; +} + +ul li, ol li { + margin:0 0 7px 0; + padding:0 0 0 3px; +} + +h2 { + font-size:18px; + padding:0; + margin:30px 0 10px 0; +} + +h3 { + font-size:16px; + padding:0; + margin:20px 0 5px 0; +} + +h4 { + font-size:14px; + padding:0; + margin:15px 0 5px 0; +} + +code { + font-size:1.1em; + background-color:#f3f3ff; + color:#000; +} + +em strong { + text-transform: uppercase; +} + +table#chart { + border-collapse:collapse; +} + +table#chart th { + background-color:#eee; + padding:2px 3px; + border:1px solid #fff; +} + +table#chart td { + text-align:center; + padding:2px 3px; + border:1px solid #eee; +} + +table#chart tr.enabled td { + /* Leave this alone */ +} + +table#chart tr.disabled td, +table#chart tr.disabled td a { + color:#999; + font-style:italic; +} + +table#chart tr.disabled td a { + text-decoration:underline; +} + +div.chunk { + margin:20px 0 0 0; + padding:0 0 10px 0; + border-bottom:1px solid #ccc; +} + +.footnote, +.footnote a { + font:10px/12px verdana, sans-serif; + color:#aaa; +} + +.footnote em { + background-color:transparent; + font-style:italic; +} +</style> + +<script type="text/javascript"> +// Sleight - Alpha transparency PNG's in Internet Explorer 5.5/6.0 +// (c) 2001, Aaron Boodman; http://www.youngpup.net + +if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) { + document.writeln('<style type="text/css">img, input.image { visibility:hidden; } </style>'); + window.attachEvent("onload", fnLoadPngs); +} + +function fnLoadPngs() { + var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, ''); + var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5); + + for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) { + if (itsAllGood && img.src.match(/\png$/i) != null) { + var src = img.src; + var div = document.createElement("DIV"); + div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')"; + div.style.width = img.width + "px"; + div.style.height = img.height + "px"; + img.replaceNode(div); + } + img.style.visibility = "visible"; + } +} +</script> + +</head> + +<body> + +<div id="site"> + <div id="content"> + + <div class="chunk"> + <h2 style="text-align:center;"><img src="<?php echo pathinfo(__FILE__, PATHINFO_BASENAME); ?>?logopng" alt="SimplePie Compatibility Test" title="SimplePie Compatibility Test" /></h2> + <table cellpadding="0" cellspacing="0" border="0" width="100%" id="chart"> + <thead> + <tr> + <th>Test</th> + <th>Should Be</th> + <th>What You Have</th> + </tr> + </thead> + <tbody> + <tr class="<?php echo ($php_ok) ? 'enabled' : 'disabled'; ?>"> + <td>PHP¹</td> + <td>4.3.0 or higher</td> + <td><?php echo phpversion(); ?></td> + </tr> + <tr class="<?php echo ($xml_ok) ? 'enabled, and sane' : 'disabled, or broken'; ?>"> + <td><a href="http://php.net/xml">XML</a></td> + <td>Enabled</td> + <td><?php echo ($xml_ok) ? 'Enabled, and sane' : 'Disabled, or broken'; ?></td> + </tr> + <tr class="<?php echo ($pcre_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/pcre">PCRE</a>²</td> + <td>Enabled</td> + <td><?php echo ($pcre_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($curl_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/curl">cURL</a></td> + <td>Enabled</td> + <td><?php echo (extension_loaded('curl')) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($zlib_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/zlib">Zlib</a></td> + <td>Enabled</td> + <td><?php echo ($zlib_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($mbstring_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/mbstring">mbstring</a></td> + <td>Enabled</td> + <td><?php echo ($mbstring_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + <tr class="<?php echo ($iconv_ok) ? 'enabled' : 'disabled'; ?>"> + <td><a href="http://php.net/iconv">iconv</a></td> + <td>Enabled</td> + <td><?php echo ($iconv_ok) ? 'Enabled' : 'Disabled'; ?></td> + </tr> + </tbody> + </table> + </div> + + <div class="chunk"> + <h3>What does this mean?</h3> + <ol> + <?php if ($php_ok && $xml_ok && $pcre_ok && $mbstring_ok && $iconv_ok && $curl_ok && $zlib_ok): ?> + <li><em>You have everything you need to run SimplePie properly! Congratulations!</em></li> + <?php else: ?> + <?php if ($php_ok): ?> + <li><strong>PHP:</strong> You are running a supported version of PHP. <em>No problems here.</em></li> + <?php if ($xml_ok): ?> + <li><strong>XML:</strong> You have XMLReader support or a version of XML support that isn't broken installed. <em>No problems here.</em></li> + <?php if ($pcre_ok): ?> + <li><strong>PCRE:</strong> You have PCRE support installed. <em>No problems here.</em></li> + <?php if ($curl_ok): ?> + <li><strong>cURL:</strong> You have <code>cURL</code> support installed. <em>No problems here.</em></li> + <?php else: ?> + <li><strong>cURL:</strong> The <code>cURL</code> extension is not available. SimplePie will use <code>fsockopen()</code> instead.</li> + <?php endif; ?> + + <?php if ($zlib_ok): ?> + <li><strong>Zlib:</strong> You have <code>Zlib</code> enabled. This allows SimplePie to support GZIP-encoded feeds. <em>No problems here.</em></li> + <?php else: ?> + <li><strong>Zlib:</strong> The <code>Zlib</code> extension is not available. SimplePie will ignore any GZIP-encoding, and instead handle feeds as uncompressed text.</li> + <?php endif; ?> + + <?php if ($mbstring_ok && $iconv_ok): ?> + <li><strong>mbstring and iconv:</strong> You have both <code>mbstring</code> and <code>iconv</code> installed! This will allow SimplePie to handle the greatest number of languages. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php elseif ($mbstring_ok): ?> + <li><strong>mbstring:</strong> <code>mbstring</code> is installed, but <code>iconv</code> is not. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php elseif ($iconv_ok): ?> + <li><strong>iconv:</strong> <code>iconv</code> is installed, but <code>mbstring</code> is not. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php else: ?> + <li><strong>mbstring and iconv:</strong> <em>You do not have either of the extensions installed.</em> This will significantly impair your ability to read non-English feeds, as well as even some English ones. Check the <a href="http://simplepie.org/wiki/faq/supported_character_encodings">Supported Character Encodings</a> chart to see what's supported on your webhost.</li> + <?php endif; ?> + <?php else: ?> + <li><strong>PCRE:</strong> Your PHP installation doesn't support Perl-Compatible Regular Expressions. <em>SimplePie is a no-go at the moment.</em></li> + <?php endif; ?> + <?php else: ?> + <li><strong>XML:</strong> Your PHP installation doesn't support XML parsing. <em>SimplePie is a no-go at the moment.</em></li> + <?php endif; ?> + <?php else: ?> + <li><strong>PHP:</strong> You are running an unsupported version of PHP. <em>SimplePie is a no-go at the moment.</em></li> + <?php endif; ?> + <?php endif; ?> + </ol> + </div> + + <div class="chunk"> + <?php if ($php_ok && $xml_ok && $pcre_ok && $mbstring_ok && $iconv_ok) { ?> + <h3>Bottom Line: Yes, you can!</h3> + <p><em>Your webhost has its act together!</em></p> + <p>You can download the latest version of SimplePie from <a href="http://simplepie.org/downloads/">SimplePie.org</a> and install it by <a href="http://simplepie.org/wiki/setup/start">following the instructions</a>. You can find example uses with <a href="http://simplepie.org/ideas/">SimplePie Ideas</a>.</p> + <p>Take the time to read <a href="http://simplepie.org/wiki/setup/start">Requirements and Getting Started</a> to make sure you're prepared to use SimplePie. No seriously, read them.</p> + <p class="footnote"><em><strong>Note</strong></em>: Passing this test does not guarantee that SimplePie will run on your webhost — it only ensures that the basic requirements have been addressed.</p> + <?php } else if ($php_ok && $xml_ok && $pcre_ok) { ?> + <h3>Bottom Line: Yes, you can!</h3> + <p><em>For most feeds, it'll run with no problems.</em> There are <a href="http://simplepie.org/wiki/faq/supported_character_encodings">certain languages</a> that you might have a hard time with though.</p> + <p>You can download the latest version of SimplePie from <a href="http://simplepie.org/downloads/">SimplePie.org</a> and install it by <a href="http://simplepie.org/wiki/setup/start">following the instructions</a>. You can find example uses with <a href="http://simplepie.org/ideas/">SimplePie Ideas</a>.</p> + <p>Take the time to read <a href="http://simplepie.org/wiki/setup/start">Requirements and Getting Started</a> to make sure you're prepared to use SimplePie. No seriously, read them.</p> + <p class="footnote"><em><strong>Note</strong></em>: Passing this test does not guarantee that SimplePie will run on your webhost — it only ensures that the basic requirements have been addressed.</p> + <?php } else { ?> + <h3>Bottom Line: We're sorry…</h3> + <p><em>Your webhost does not support the minimum requirements for SimplePie.</em> It may be a good idea to contact your webhost, and ask them to install a more recent version of PHP as well as the <code>xmlreader</code>, <code>xml</code>, <code>mbstring</code>, <code>iconv</code>, <code>curl</code>, and <code>zlib</code> extensions.</p> + <?php } ?> + </div> + + <div class="chunk"> + <p class="footnote">¹ — SimplePie 2 will not support PHP 4.x. The core PHP team has discontinued PHP 4.x patches and support. <a href="http://simplepie.org/blog/2007/07/13/simplepie-is-going-php5-only/">Read the announcement.</a></p> + <p class="footnote">² — Some recent versions of the PCRE (PERL-Compatible Regular Expression) engine compiled into PHP have been buggy, and are the source of PHP segmentation faults (e.g. crashes) which cause random things like blank, white screens. Check the <a href="http://simplepie.org/support/">Support Forums</a> for the latest information on patches and ongoing fixes.</p> + </div> + + </div> + +</div> + +</body> +</html> \ No newline at end of file diff --git a/simplepie/create.php b/simplepie/create.php new file mode 100644 index 0000000000..908ed182bd --- /dev/null +++ b/simplepie/create.php @@ -0,0 +1,178 @@ +<?php + +require_once 'simplepie.inc'; + +function normalize_character_set($charset) +{ + return strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\1', $charset)); +} + +function build_character_set_list() +{ + $file = new SimplePie_File('http://www.iana.org/assignments/character-sets'); + if (!$file->success && !($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300))) + { + return false; + } + else + { + $data = explode("\n", $file->body); + unset($file); + + foreach ($data as $line) + { + // New character set + if (substr($line, 0, 5) === 'Name:') + { + // If we already have one, push it on to the array + if (isset($aliases)) + { + for ($i = 0, $count = count($aliases); $i < $count; $i++) + { + $aliases[$i] = normalize_character_set($aliases[$i]); + } + $charsets[$preferred] = array_unique($aliases); + natsort($charsets[$preferred]); + } + + $start = 5 + strspn($line, "\x09\x0A\x0B\xC\x0D\x20", 5); + $chars = strcspn($line, "\x09\x0A\x0B\xC\x0D\x20", $start); + $aliases = array(substr($line, $start, $chars)); + $preferred = end($aliases); + } + // Another alias + elseif(substr($line, 0, 6) === 'Alias:') + { + $start = 7 + strspn($line, "\x09\x0A\x0B\xC\x0D\x20", 7); + $chars = strcspn($line, "\x09\x0A\x0B\xC\x0D\x20", $start); + $aliases[] = substr($line, $start, $chars); + + if (end($aliases) === 'None') + { + array_pop($aliases); + } + elseif (substr($line, 7 + $chars + 1, 21) === '(preferred MIME name)') + { + $preferred = end($aliases); + } + } + } + + // Compatibility replacements + $compat = array( + 'EUC-KR' => 'windows-949', + 'GB2312' => 'GBK', + 'GB_2312-80' => 'GBK', + 'ISO-8859-1' => 'windows-1252', + 'ISO-8859-9' => 'windows-1254', + 'ISO-8859-11' => 'windows-874', + 'KS_C_5601-1987' => 'windows-949', + 'TIS-620' => 'windows-874', + //'US-ASCII' => 'windows-1252', + 'x-x-big5' => 'Big5', + ); + + foreach ($compat as $real => $replace) + { + if (isset($charsets[$real]) && isset($charsets[$replace])) + { + $charsets[$replace] = array_merge($charsets[$replace], $charsets[$real]); + unset($charsets[$real]); + } + elseif (isset($charsets[$real])) + { + $charsets[$replace] = $charsets[$real]; + $charsets[$replace][] = normalize_character_set($replace); + unset($charsets[$real]); + } + else + { + $charsets[$replace][] = normalize_character_set($real); + } + $charsets[$replace] = array_unique($charsets[$replace]); + natsort($charsets[$replace]); + } + + // Sort it + uksort($charsets, 'strnatcasecmp'); + + // Check that nothing matches more than one + $all = call_user_func_array('array_merge', $charsets); + $all_count = array_count_values($all); + if (max($all_count) > 1) + { + echo "Duplicated charsets:\n"; + foreach ($all_count as $charset => $count) + { + if ($count > 1) + { + echo "$charset\n"; + } + } + } + + // And we're done! + return $charsets; + } +} + +function charset($charset) +{ + $normalized_charset = normalize_character_set($charset); + if ($charsets = build_character_set_list()) + { + foreach ($charsets as $preferred => $aliases) + { + if (in_array($normalized_charset, $aliases)) + { + return $preferred; + } + } + return $charset; + } + else + { + return false; + } +} + +function build_function() +{ + if ($charsets = build_character_set_list()) + { + $return = <<<EOF +function charset(\$charset) +{ + // Normalization from UTS #22 + switch (strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\\1', \$charset))) + { + +EOF; + foreach ($charsets as $preferred => $aliases) + { + foreach ($aliases as $alias) + { + $return .= "\t\tcase " . var_export($alias, true) . ":\n"; + } + $return .= "\t\t\treturn " . var_export($preferred, true) . ";\n\n"; + } + $return .= <<<EOF + default: + return \$charset; + } +} +EOF; + return $return; + } + else + { + return false; + } +} + +if (php_sapi_name() === 'cli' && realpath($_SERVER['argv'][0]) === __FILE__) +{ + echo build_function(); +} + +?> \ No newline at end of file diff --git a/simplepie/db.sql b/simplepie/db.sql new file mode 100644 index 0000000000..13f504c214 --- /dev/null +++ b/simplepie/db.sql @@ -0,0 +1,38 @@ +/* SQLite */ +CREATE TABLE cache_data ( + id TEXT NOT NULL, + items SMALLINT NOT NULL DEFAULT 0, + data BLOB NOT NULL, + mtime INTEGER UNSIGNED NOT NULL +); +CREATE UNIQUE INDEX id ON cache_data(id); + +CREATE TABLE items ( + feed_id TEXT NOT NULL, + id TEXT NOT NULL, + data TEXT NOT NULL, + posted INTEGER UNSIGNED NOT NULL +); +CREATE INDEX feed_id ON items(feed_id); + + +/* MySQL */ +CREATE TABLE `cache_data` ( + `id` TEXT CHARACTER SET utf8 NOT NULL, + `items` SMALLINT NOT NULL DEFAULT 0, + `data` BLOB NOT NULL, + `mtime` INT UNSIGNED NOT NULL, + UNIQUE ( + `id`(125) + ) +); + +CREATE TABLE `items` ( + `feed_id` TEXT CHARACTER SET utf8 NOT NULL, + `id` TEXT CHARACTER SET utf8 NOT NULL, + `data` TEXT CHARACTER SET utf8 NOT NULL, + `posted` INT UNSIGNED NOT NULL, + INDEX `feed_id` ( + `feed_id`(125) + ) +); \ No newline at end of file diff --git a/simplepie/demo/cli_test.php b/simplepie/demo/cli_test.php new file mode 100755 index 0000000000..ec933c5ad7 --- /dev/null +++ b/simplepie/demo/cli_test.php @@ -0,0 +1,23 @@ +#!/usr/bin/php +<?php +include_once('../simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (isset($argv[1]) && $argv[1] !== '') +{ + $feed->set_feed_url($argv[1]); + $feed->enable_cache(false); + $feed->init(); +} + +$items = $feed->get_items(); + +foreach ($items as $item) +{ + echo $item->get_title() . "\n"; +} + +var_dump($feed->get_item_quantity()); + +?> \ No newline at end of file diff --git a/simplepie/demo/for_the_demo/alternate_favicon.png b/simplepie/demo/for_the_demo/alternate_favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..063fb280549db7a68a47cce157d680ed7af1a8a2 GIT binary patch literal 28621 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/background_blockquote.png b/simplepie/demo/for_the_demo/background_blockquote.png new file mode 100644 index 0000000000000000000000000000000000000000..8267e23a23575eb148f8b8e3305732e6f09870de GIT binary patch literal 27353 zcmb@tcUV);vp5WjB7z_tq^XF2bdX*GA|TSFcTnkFdM6?RB2Ah|3nIPuUPA8>iu4kC z=%Iv!kdVB5zW09beeV1F=Y8()-Dk5qXV31Onc1_mGnund?=)2&+<$bRfPmnE>YLX( z1O$YL8~FacyEo-4$uh&6ipcYos@}bu6m-w}+s!q}r#Hr)1O%j1|NIE2Rzk2hjci^@ zMqavZwqCv;JZuOwK3I9Ux!71ce0Z$v;9=wI=HcY|Sfbv3%I~Ht-9KFwJ#0RBIk>q# z)^l*NArKN05EK^>6isV?9CXuT_LGN!p<m|Fj1YOZAX)ea;;8VbG+mEZ<exq0#gwO_ z3i!nS=p5>8<Mn8Y$&j_C7q}MLtrw{}Z^w;4<C9knmy3UDDHKl0gArE#sJ}ywkDp(l zNP6=c>8tRFO}=(Q6k>-+r@d`@2?PI$%ayJ~c#o$K0Ukh<{BuKFQX61yGZ&hs*yKG^ ziq9(k7iogTYhr{Kne-HDl`wd^oHJ??V_6WF)wu}A<8E-c;cq$aZ9cC;Vkig*8ej;S zLF2ggr5iT>M{0OaP(l5m^i>K-?WX;Wi_<IRtJPuL4NUYu`u#61xbsAE2nblDU7YlE zZ=_~!>bcaP*uT?TZ8OrirHA}rsaIcLuQk+_lB$wG!_k-AtN5<rke>b?m6(>bv`S;| zNH-9A3?jTocK0#C>C>euss~YBWP+Byz?Er{&v6!YuC^-*fl|}hE<k*th^|wB)tn%< z)?z8680TcrCUxj1qNaZx){`SXtp}{K3#@H9rZ}AD{@aMmA%$d20Km|Ll~I%6%b8Uc zi}7SWo4lrB)BH;H<oFYZl1xnGfXch`hmLZuVhgah>UFmTBsQ1Xyfl^P_l|`w+MTrQ z`t#Nsr6T>Z%X8VA=x9F8pPC|Bv#foK$K`(inaK?+r`M~C_a_cCzmj8^QeB}7J|HiW zuq8gidCiug%b%1o*Q`d0wGL7q#M4H$`lSx|8J0jLCktxt(n$GCO9~b3b}O*l&!W9c z7s79i(~XF!$vy0z<hjI=21!LuY4hjUwrP&mnSLxNzhA4uTpPT7>l0ehpTgU4_!%`* z(g%^DPUV!3n=L}lf61Je@AmXhkmly5k+DX0Z3_B5A_LtGD_mc?7XOrz;I`Cum`&jL z^EUBiWDtQIjG!S!>$h1pf$}@PcP+bV+JZS&uXG!0CcHd;bK9HHrGF`q9I4m*Qe}`N zZ;vu9>$kO`nIdMMqFdP1bC>+BCHY(I^Ij<bG1u)&uLlGDq~!+R^LNrl>P>t292zyX zTQz#@GpxJ_1_a)$1iZtz>-(5?QqXiNn?DfKqMl#Y0scJX7LT9s>F$2(6mM^;gs|&r zpnVq*IpMF>LOJ*QjRsjCZ!$u9SblLzJK(uev0{VREyG{s8osog!Fv+22^+l&#S+R) zumfI=8irSNii0gF?JV+pT;jtpfvHWWQ=`8h1&zs`M|N!q{@O~gwFqPS@<`*!C%n#s zaif+lmvD*TTQHyc{@+3(M80E*APt*|BC<y*3c14edUs<Vh1q5(){=gACtPj61Foce zMm}+y{GD8U#M9U{T@glkJ@CWd5ov@E$Bv#pjCEsV+#`FE^~75Et9rzbq31zdv-2?& zkqXna67Pt5-ml6KU0jhSAEs+yYZ8(d-;4b)Nm4A1uXzr6njBsL$?y7`f$j|I?s5+6 z&eFZVWB$walGlju#WwLJRu!F`^?Tj6l(9L?TSGK@sXSl!S=7Uassc_(=0>yj1SYlI zF4$y*7=Mg;gTmYZSxdyoj|^V!vUj!J_uHQ>Y=@Qc%HxTovo?%{KC4F)=EV}N+^+$? z=ouUn*3*mbYf<{j&{f=@b&GrE{^z&*2KGfZ54;HK*@Y+K(;N##Q%mheviK{MAt7rF z?YAsHaVQn?7yWwZZ9P^{?LfvBym|R9BtEgIoM;bl|1?0$lZF0eKgo1Ks961w+tY2k z0rV}4^y9ab)c3&0bcWnXu(vF6X+mP2nDH~^h5N#V%QG}8HCkK1dOy)O@>3$7ewqR& znG9N6M8aEQ<j?w^jSNt(*M`{>4aJ6YbP>P)*~ifpsqo<&e1O_kX^kVh`jec(z8M3Q zBwoEr=$5)MF8`Jcf!W2-*ALI7Vx32ai3UA%@=_ALcFo$GVk6h9^F?+UBG6US&zp;d z^ki0&G%c346y%Zw_(a5`wZ`nfzZ15~8u)Q>H(tkHCy|;@F*Qfu%6^8yMAUXThTybk zkXoHFcy#SIK^&^bzE3;E^2Z|wL7EIQrTddlxk?(9Cat-IX_LCYIeqz-3kuEcn<jW@ zP)(zn#6Cn@*)LjYTM)`vF?#2Hz}cv7iw?Pi|Ga*Pz{kGkI$=u$uc4Z-t=He&{Bt%* zhMIMPL5085g3zQ25TT-v1N$xhIx-<cPE|6?&xyxeD%k1Q&4amBN(8fIs-WZ;85$EE zgpnF=SL2r$^?=J?u`7h(>u`Sw9H={+bT2>}O`@YEYI{7|`fSu(O5_PANZf6$jHVU) z?#{x6#XaqoKT)+bhUryPBG0+c-xRzaY!{Y|u7S#|DhC$$wF+^6hFvo-hL{}(c#L~x zw`2ytzBBrgNNt(%{5J8y>l&qUB`0bLZsR(s^<;BDm2pd=q$d(<ogav(sdRR~VrD#u zg8h;WxFn1M!u;=@5w~v5zCnK?CA%V~R!jHd>pk%&Qj95eXAjdjkRi968AMXXc|A(J ztrLS1p)#uIk)M$)s^A}e)i0B1D+0O`!l0MhwYb(K#!$r%t=RT>zY@VPvlgjv@}&9H z{$a?y?i1YSz~ipRzwRv#sm7|)#CPvOAFYY^H?Pq@7k+Y;wy>A{ZEA}$f2c~_EJ8Nr zZpzn}irU{_O1cyMq6zM#0SL5FDEd`$o%O~_rTTAVKfYk&RdpEOYEaY36ygmP+8F&F z6usuixHdcbaqVuWg9U>s)#s~^1(&LF(>u`y=*vcnM4)Fgw;bUa^9PRb9*4M(2&ds) z@z1(jB+->&CP7bVhA*dRqGyQ7-UW6RrvX)di)y_cikF<I99-p;X;)y930Kwb2)^IF zXvyHcV`|s`QmO0xV{4+P$)@>Yd8T$fZA(Elnh8NCA3jlOJEnZ#J0uv3ckhTQT>ViH zZy!+i`fHefA>~$F8J1v#onKK5p662Qz~mI&W%SJYLZUIi-Sr}q`SA`(zpJ!tVrdb- z;*Y+vNroqxRneto3ddHR*AUL_ur;hZ5T(-B6V4L!OFkmUHjS*ugjunW;HzjcYl-kZ z<Ex_4kSKZ5P3bM~iU_?&dcp_g?&o6^i@_W%cQ}{Qn1pj_f12oX8#snQ6@xN*9j*B_ z+rmL+Z`z)8QCS>@b;$|BZ&SbB2|iH-bWV`p%2nu0aDMxPV*0&Hbu_s}#O`2BI4BfJ z8zn2kHu0FuhD5{Pt5-<W`d7<?W@)#xX1gTLhzwD&_@{*|TMH(hoUB_bUzfF|zMUJL zLkV&f6LcB^Ol%CRN&RT(D3xpr?ihGH4oEEFWQCt?n)}FnO>Fbdl0J}{o*>ZCnYc|S zK`Vls`)b$V8x^=~<`m!TCE|L-zGoo)WIQ<_wXRB*Z-mvdZ@c8psr7J3jqc}tcFBFG z^g|*AEQGl?m8Pn-F8V4FWZv`lx!l`2MV_`MEkGclPI|4?!M6Y0*O<N`8u9T$8d45j zZrdDxPT!5YP&f(4htX-cOno<3il+ka;<K^1*H^KAzb)TAMm5Qk<?DVNs{z@0T7$@n zDdQzKA3bO=edN;qMAe+7>UZ%yO$wMq==WpYWwf2xN1ga=H-G~{TEj0Qv*Lld=fd#3 za@v|B!Mq?XX-mNo8P&r=st=_p8VQbQdcN+VTy36?DW=yu(V$kDdpp9!L(QX4cR`T~ z6Ou05Jn6J40`|)m7xqc-p7HI!DHIPq+g4?c%1O{e-;!hg+B|0cI&JQ=*4ible}<CQ z7rvg)<yiDn!k(Rv0<4FU4|l}XgrV}pioR_DEb6@RYO-~c&b^-JpubLosnTD~nJO}G z*$}o|KE9CQf%FX9FUA)0kX5->OB5TZo3cd~$7sE545H{f4|ZFSYHfpA)?mF9Ti}e; zx|F>aPf0dkmfH{(W@V-bygE@O>H>3>HYgV7b~8*_)Zfw){3?+i?a7pH$r(Bn&8+#Y z=9Q~?&B!<8vx(3(#fPtv{$BBl)(0vHpR(zsu&$M!A_vOZofmKD#5lGJ5>%3961#-j z1=nt?!d})#jO2|F><Q~13Wx6>Q`)a6L~1gU8LbfVj8~nsP8u_}KEZVgjL&~H{XUyn zFq_=Uk+niagIQ;hjl{V3(7%g8Tf<(Q$%T(hAj~_Sepf$u0S;TdTUok$3?^EOUn)CS zyljIGq*i$?s2S*8!Bk4>et*AKTsQ*vOI;wZ?KxWSm7G|Lx3F|=VrmMKm)Z+Xqdk~D zAreby%DFkk!-mF+whUgoYBeq2{TxG@+t)TEtq`E~ig9RMa?D**GD=GQk0!_DQ>tJF zlcyDTejmg{Oj=lHJuZ?SE8^jlOi~>$duG^Amqt{<)$T*N#xef~n>o!4TmEh?T2AFa znJ{j}6S;aU3N1T4r2&4zzTEbcbT?KvGvFu}p4!)axTg$KLS0%*Nra?(v}M-qtD9WB zHL=N?;dtHugf&!eXFy9gE;Y#@Otn;7we(vZtEa=!DNG0dI3)TmXMA&zwOuB^Ol~G` zhWgL3w?CDv{j*1El%k7M*QrYB<!F5<O|tyzGBeGdb2cXGQcAjnCrQ`QBClB7U&&Qc za&Dccdk8a$q{Z^2rJOoe+JkqVt<U`D6KB7wI_apEj#{?@EDcDku#q3U7|Q>H<#^Tc z=#_b&B4uiuJg+x2aEBRAqtyq0mCFF;?<|j>i-Pw0YI2nx9{C{V#o3W#F~Lk9D?7ki zB!|L|S2BMJ=043jnamcf5Oh_4Yk8#2g7&Vs&#v#w3@~sAFA+ojma<r&G5vnkHcZN= zu&$<X{Z%nmls$lHh}H#3uTU`rAF==4rA%BXzEdACT|D5V;bb9Q66NA#tZ~4oA$l73 zdNSC*5zHMv|DB8IF5Mu9r>LNf?{ry)sD>Z``^(RhP3tD7!^%dco)=LDN#xcWu`0(B z+{0tb-37g;G0|4>NaVyKkBi<y;ZebaV?ykH$$CGWuVibn$aqfK;cbP6I;2h~xot<? zOkYj+%z7Z*Po>!zp$WwmBtN~k*}dk%I>C2;^9uvdLB-iucl6Z)jXZ^<d;*F=Vda(@ zVOG(MqeIE;JEoF1m!A5iGp{9{mP9-_ut+bdCM_iD^}ZA+%wOJHg4R7H+vV=JHcI-l zw1=7|f|tV@5@fEO@23|E*}nqTaCK_3nLXRr*T(`b8f+*ROZaQ{B!&x8U$5SCPyYKQ zLzx=!bnJ@;3vi0p&pI|H;pfM$dXvOQJ9ILjwRjpL>sVzA!{9<UpswQymtGj)@+WB! z3Le?l!Bu=2P$%5Aea<wS6%!R@FZ_^1B~3<Dgq`9+M^zy7<;=!y$!z;DT#83GRO`gG z8ZebnVkJ6lR`&8|hY}!z+z}kUyj5QCMZq9O^7xIbbHWJu7jpkUFJz5EfjS(fGfF=b zuqy{XuC{?IgDpE>-^=A?jY=fBcEOnfdK{|w#YotQ-IIBMm2S{csUunJ#g`aAt<&8c z7wc2SUxrn%g95BTve%-(dKp}@Crt5sT`-MP;A??(Nj<5yF+7(@zGl6sQW%^5WQyfl zEvd>0H7nD!<sYZcYN@|P2&>67@5^$92O;NHhAZju+Kex<CvTtf;3EI@j|VYGp3}<S z_snmD!9pT^X{0gkTZiw@r|x7pguCp2=cro<vj{!h?IT1K@g~=GXM1SH@3|edv$v4p zS|(H+eHj}BKk_x~nOmoJGCRPc4S#_L%6cqaHzvpv2nxXoFJG7Kly^(VWV+pBhkj|5 zEVN#<4y6GpkIVegNHfGj+|{{*$V?nw@gVCo)C*yVF4Gl59McJ^X{Wam^A%K%Pa444 z-`RYP;j^z)4k7EKu9A6NF@D??jr}Go^M`fZ|COQ-K4JEiS_UYDX`0KLkKLF5ed7RL zp1_{Os6$b#(f&|1wn{Y>Pox@?3>4ylxxl+tK8_y?cirPlT%=uy*GTtGDPe?!MLt2N z(HB4BX;{8*`rU^Qga&`^g@3}ECw70GQlmF}#Q7=KbHW_?@i)cqr0l^Bfi<J#1<iG= z6_WWWcsTdo=J9KZRIU~xX$pIaxz_JlJU$kZ(x$Z1hKFX=p5#8O_ZQIV6_H|wLSB6n zrM9~!eG{~bhGgcSb6j>a07n-8H1pWmCphs$R4}xBv}aVr|FX6Zk>g|KIgE!GWSYAp zOC(JzC0aKQzt?(xLMo0gxD6s#J4IJRFZ7tr-4P{{i)9im8@u0gNv-9cGMoP=!rYI$ z-*b2($Qe!k3_-WXrOQ9Uq&vrF#&0MD`}lyIV8Zk0rFnnD>T~n=Fh`hq-#D!_>;ufr z?FO9i4b3Ud^8FW`Uvt1&|A5dt5fwhG`eZlwS^ouP28&CyF8Uj~`}8gNOJGcwZ$O0k z+U`HNCTUgZhk}BnrQt6kI!MXPkJ?Iac-xg!^j+iqi~lCmL$50w0RnrTx*V2W)YRX` z&g!XOGAaUN^Q*iY=%S@|?}?m5R?kKwja48v0uGtA(cGUD5z8;LO6_8v4JF)t{JvZX zbt`x=YVWP~3MrD-z4B~q&qTvW(HvAEdjH^&GW!*MnTu9agVJ>zL#*7|RfNC!36tfu zoR#9lFNBfasB}nkLXkwAhRUBA{!IZPsu`lCil>uaA*-NsZb2`iBU3>HL4_d4Yp`ns zoz>Vsg1niWVOrkQ95x7AkI~KpG5w3i*WT>VZ7fS=$7QLy5GR((S0zCl*xNBU>3u1* zj{RKz;PNYQnhGv3k#YC5Rpnf6>u|}2lsAgbVBw2((BtW!!Y!y|?6Bm5cA5CLAy(CX z?IYhKZjB##q~J+ktwC5u?{p~L2Uh~`!P_jPTXA;cYts9x4CAP|&s%@0Rp4vj_ho!d z5h}i&GSj9_vv>SC5jMbXROtzB;yGTRZA$hLh8!1n5uoKxBzr~P&pP*qcv!+NVx9G` zEr#<Wn#$x%u)tGcC1637bI0LxNM}=2)H};}VZ*h$prXp>gI4aZpI6wyVr`~^P90_P zo9~h)9cY-{ZVXi$c=*9=+Rx|dpx_FI@m=e^T-~_(GYV~seDpBEir{CUavtC4oTx%& z-7kv|*9-yLQPUIBV%%}8)NWCp$uqx=$)cL>#y;bN>cF!J(D6APoSVLeyRurP95psi z%+XI;2I{`@$0$_L?S}PlV@Q==S*;PccP!qMrQg5R|HkUll0(BJlD}6afW8X)Mbf&{ zH8sDS(s=P}K>Ryfp`yFH##AJ`Oevq8+fEtI6U(-~>{z-<Qh>wZ@MP_h`o5($m>84W zh4_@tBv0&6Nu`Iyp8FOSYq;<wpm*&ymJT!L5f_q}&NB4qx=kN9S!l`af><!5RAD;; z$X(fS=K>3ffL1atnwb%w=XHF5TF<z6TQ+pLsr)ODToKA=QXiF7;s)P*05Tbd_&$w0 zmyT&nT7g=TJX$aeeA@T%G=;VQ$HU5;6-pmh>NxS2-P^rylLQTfkIl-SF}a!9_F8<s z=CpZBIi3%O63e47JsAtem9fC5r=mPqw9rb;yf$`?^Qt#yLKw3QGM&}I1k>#9=>)DM z`vAUNISor6zivM(-=yG+0gOu11M^~=zblk5<o#1@9rrzkq})D}z`t`gVQhI`&~xxU z;)A5nkVK3sLYh8lixFs60B?@8$aGgI)j*~dZi@_mriYNZC`NlqiH}N=20XRoSWZUD zX0nBvJYP5$g;fpYxjnZjG9NaRuA9r@-m20DX3dA(Gchg5N}*OTgy&cAjCc&86oB~O zq96Y5K%V42LlHSE&9-aP_ZMf@mn>JSTezn|!*HhyXR5D<&A;0$wD2xvX+I}N*lT^i zpD4d9v~zAB>)1h8qQm^{Y~Gofi|tg3mp=+80*WRFok7=6_xKT5;tG+JA73?vCx$$j zKYG)@O){X&rEFH>kwqgPmMc?5tANRigV-v9MbbvWsnxe0?8|%)8vP_jGm3>zIorz( zYrMy*FGRLBKZi=@i#BJi#c<ek&wP6BxGZ@{A1@a`0W5qY8sPJ=(qbZ}Kj-53;FIiy z3d3Y&Z|@$UKK4y85A!y;>dC7ba7|I{p6`6W_2vrEvDWUsLQG(wS}j4>UG(=y?+w^3 z;ivk5B<pqUyn@LNx@ctMT7^NTlh`g9CuK^x@~s7S%LLw!wJ{V42P#Km&GGr%ucLrk zE*TwQrRDO(zh4Pqq?r!9VV;w84;DxIoV5#aOnD?toSjcK<fG5u(D&11{j$ztHO_5) zt}*xsy)U{x@T2(j%3b53T^y9~mAm;Rcl`x8$1C}K{%}irtNl)TRe78CiH0uQ&);`6 zaAZuv@_eJLyS;;#K}+8*2^e#gJ)0@rLse>}vvxi)1Xd`LPN}p9Jn*{<t8$`G!Ff82 zv?YQezGdbUptJb(+W6DlzWn1v-#$s!<Cj(<a!9jR9{q;UA~w2#7IHRTm0;-*gn|1H zWsHLCuuDz5xJFHPz*F-3NR-QcJVM(|lS*q{4ls4jS!T<*oNx5=&Zc{@f8^$rl9i<_ zJ??dkI5?~^ITD;#h))&D9oo0-Z~EEU1hA_E4+r?D4x*T+-wN4!-NryUDjP*Axy#+C zr<hZa`*B>5okUH>EpKzV^FAn@Yy!<8PRUaGNqnr(Lck%w<*z$_cf#0hU8>6%op+H` zw=F8rC%bwuUW@--w|6!7DKd4vV`R5l*lcrB{rhRl$Yz<X^-Pwm$nP&@;+RqSpuAGM zpL{h_5UOUYpI}v~__V!(DysDe-?Y^lRZn{M$e`@$5YLE_J7^iied)&Jt6v}YrTUCC z5(8p)bjE)DRe8DO+MgGP5A-??*je%K$BXWF$JZ5{q{XMmGMzEXWtcr`I=2>xk>6;J zdh#Kfofp95_HNwfmBIMav%A~&e<=N9h4FW{Kb(kT;y6s5Otpv-Ws%+|9+bvP*@0bY z?12Vex*m=dV{x_p!E@GiO4^5aOnp~>KS+xzEHFqh*NpRJ5k^PN!U}?(+w}|<V5#Nu zk0+#7&0bLKIF<4IRAqUlT_|Inb(V11s@yU4XV;!ZST)W^R>TZx8+|GAt!t^AoNMtK zkpdoiit}1Mg9aL_)fr>?Nj2=Ncg^X3wewsZ<~0E;0y6F_(HganZ5-S<`ic`BV{*Be z;9<{Z4?6Ny`5^UcD>{djz}*hH=lnQ>oEZ`Kv!h$I^oC~G3wL)Milc0Eg<pst8Snhq z3JjKRORHaO-y1!@@pgR|8cD9tTd#lAvP}exEujN7B%Gkp%#s?+j5kphkzMck^l?PQ zrZ1{R7wgK_<$EcXIsOtXy*r^AMp!ESzK@X(cT(mpLdstcNn&IBKp^01TY2?KQ}Ker zPqGdw4;1{q{$v?-QYDf#(_Xzd>DY5p#^i<g_UpFs9(^J!PBxLHYRA8j?qE96cfnb# zpJ;Q{7;if(`$xMj@HX$2?A0uk<8$DE#5Xy81<vayc=959oGW<XK2s#Pb*aFumF0!= zuI(*5pQ<i7pOP!^1zs{MjXzlo6VUx#t^o>X{dk)30A@s<9C&!}uoW}rO4-{k_aQJw zywMGHVg!-v`_uCsq)}tPq%!YZ>9YAg&T{Fp+-|xtY@O1_Ly+0xZe>u`kCJOu4j1hU zNQ+mror)K}htQjtuUg{ZPzSamvMYZYA3vJGh)o}Nl%r+kd1+AeiqM800{`PzMDS=; z+SN*O`Dk+cs&aS3FZZ3l7ukcjIB73YFzV4==u+^5bo@uQfdHxZ5+}v)Df&;0KUC5x zr2HPv6^knId?Q~MXipb7uZ6i|0KbTHwY^?f@cUg;W@=*KG{GtIsKz~$%$+&RO2R?7 zMz7~3c6}&K9Mf0U6FGO1bC<KRl`E@bjOWVdT{S)P0%@FA82ifF8`9%H&|86WbwdwL zeJHXuk5CG=>P4C|jc<KL445K-&c1DFcN87kLp4p@-q4%2x^)g>->Atb+LzWgm>d@@ zww3=xwG0(F?%3qGFm=h(ZohwcpN@uv=IS<+)S2b+6BDpw%eJqk>e9|hCbKSE!Yt)8 zx`w&hMJGwAiDxV{_7w%<0xtvX0TM)dZn=3XJtFUg_4}Myiyy6aC6wsq6qijDX<89` zr+9zLb85S7J`ez$h{z$65(CW~khe1~XhSo)B*PRhUAsbONrH+t%Y7qSe=`Phn#)n) zx1apNs`W?67eCE#%+zRn?3E_ZRV!kr-(U2|N>4OHo0|R%MVytfAZH>cAyXH~^-wkU z?zWSGFsOVIU_TkkxD^t~-vIURy2pr*bR*uqBQ0?HiqnU*&*vkYN*o6`B|qp>OMbX| z6MgNt3C-SwQOz}PoKwMvhhxwaYJ#ve%Hf`f@<&CKZK2g9h8pR=#&E5CkBMQzNoiSQ zgD*sl{sz6yHd%WlyKmbPrEc}`c#kVt8F0U7oGCUg<G`L`YN`Qo>kB#At0_kHQje<B z`nxKh65Xts?v~lHA*}@(Y~+S)?@P{8LClj3#|IT2(bSm5BF)q@Y_ClH9FCkJxw+KW zVS1iyLdZ8H80{$M-ZyMt<_nb~CnxY;Y=_8F^35Myx={)yCwB@9ER7!@5gFYC@#}9m z(YqSI2{Ho>TmBbu<^N;IO>j9YHepGEOj-BMBh@F|&tmg_&?GABym9@J;d_2e`ew+u zl4Z$H1T?cBnRk!s55bQsv?oKvhyTicsvST)ZV5gR&xU7d<<yT0OkH0<pRD(|fh#S+ zxDwQ2huyWIWC>XhCbSK*fjs$%Yi@0bn{nd=R;U<02$T!K&d<)g#U10FfmevVIj9@7 z;~IOmJp#P?gQTyoJmY>LFuu(IOVGSFt5}3oFS?<Ve6ma(Oe|-rKS17&XW;~-&_Em( zJtuadh39KdCi@{N{1E`t!wu4;&EcHs5l-VAfJW-YTiZ;?!!1kUv&+ieEr`(8D_}iY zf@eJ~%6Mx)bWN^9DngE6*h*IDaA62vhSNg(!pV01w=96Ae2?cA8+flrjfS8B1iP3N zkay37rv{pRE>Yk7K<<qt>Q|@#rE%hbPs@{~sEe3wOP5{;GQ5uW2F|mN&3w!#(}k_j z(hkFIY`n@%apkgOKIhMyT2tn-_&6X!XlOtEKV|8s#4rF&QmL9N#Gktfz>UvVu2{|X zom#{$D*V2V>>fE1Lw4-mWS#s(cC`LPoo8Vo^QZAa5&j^QcSkROdkPjGfjg%&!y#%v zKza(|G@f7k?k)AuZ#nI;XF+~kJp+uJqi<`#-11_~;;#ogc$Wl@po{sbXN_zd+Dr1o z&=4^;PXKpt)HrYRV<zX0Ls%w)bl%SBG5ev<9hf$(jv@(Z*T}L+hI$1`qdPl3Tu8GR zhI%84HbX1$x4rG#*E(DPalwJ+F%$eDgTWI%mMHvN=>tEQ+o;`J<N?CiJaM)504U$E zcbosPlsj$R%^j%t6AMlP1ViQI2QWt2o#W77XPkUkg01NxJXgD60sw-%%BZPsi$?S< z(ZjA*_wFL1mPlIqS{QtA{mEd+!IoC$a2i4fmpO;-!TB7TssT(Dg7X1<*S^T3?fSni zlQRj|!7?g?R@-V{Q@}#O-`Wbjw@>|c)B{!vSXuRPJ%VKa<abu4hZ$HIIk26XEb=p> z6_~9d__S7|Bbv0G7TAOBv9q(A-p8)ZlI)TXe1$D{BKTfe9Gp8@+5tw-epf03GIMK7 zALCP2=6nQ$g688UnC5}91BGwE@A{9I>|maUjhg}k_H6SBr>YMIysno+=;s0x&R|!r z7KOo~4RDj4ONti%*Pw&cbI4)ix#;e<Jv_{42$+vI^f^J~7izIEaUVU!R9gv-GmrQf zuO-d*k&@wICTH-VkhNw@4gts=-f;x*liBByp=ST_s+&6k6GMB_0)7$nv+LuY7g)=^ zyN!|nJWJ`j(dA0fl~%JO)AmjOpw)$23_Y-m-dKsOzmS#7Y&(K240vR?T0L+J@GrRt zlED}(*PKK;I$;rVb%~pox3Za*miy^11GXNO4qe`|49mg}&|hNBba9)cK{6HG_>V!M z@qNQE@s7@aztpb$^(kHl5zHTeQ~>8*l!fAE3Y5~vsl05yoxNi1Mi@4jAIIGIIuRKW zi#g&YriSKjr;{>kXS5Zt>v^N28c#;%wj1!N&DoU<|K>30eMZ;51(!&`=otjL>wQ1F ztH61QN38V<>Qi@|A(Iv{_pqlj@<E4_xH(?HdD@D}^!>HgA`(5}8r(hyJ4^ps3MWla z8HOIjRo_jY>kaVwLD^*C1Kkql1_GoFUHUyPM6<9gZd+DJw%Tl*>W!&<)$uDnLF*V5 z;D?F{Y<@mJ@B|ZX(;UE$E5^27XJM!5|MoqdteiZ`10o(YuLxmjX3w{}PF3vY@JE3> zQ}MSO6M=KA&KO@A!fV-Jm6i6xMdkjY9~M{KY!_Lf4Tk}$ET6Viz$sYL%1yOHg0k7n z@xZabg(0ZTAe<DFu95;w5E9-SSSqiCxK|dYIe5F+(x)cLf%(BRxRv0tim`*U%!&}u zhr@r*SXH{IcO5u`=S2Kc*T=oA2Y$FSTaNS}4~N}nX$P!+NdU$NGc@FEXFf7Q!+ekW z8WI+LMgh?6DroTu>h%deG#+iTlyt)9F7Oiotv!_m@5@k*jD|GCWJI!GLl<_+@e4bx zat+f9%1-#0rKj$=%YZ6Ek8-f~t{aJDf3HUY@8!4S@<P`!V^eA7qe8bGDMD_bJVg`V z`?*5CdGTm0SKv5PHMBBAcj~Bc<*HS_vb%m8dXcTR1(#&oJ;u)d1`jnQ0p%#9vR%7G z_Gn@EElu&3FMtOwUR72uhdqjNTkd&yU0hwPdeY^?fqODF02q~w>!0|^O4ld&ZaG;L zY(?g*O>6)tjout6MR;OSySU~5+O7iE{6=EZ%=&<<-&ZjEpIH204FJKp=r($GyeJ5| zb{ViUFd3f~W(77csIAHIBe%HPcaA)3`<+5DF~CJVXN#`JONFpy7mQ3V<XR9q|8}70 zbA^dMlB}#PrUw}gKtdYLq-mA_J~-F7)T34;EK$s6)FU4{c?~|-|EL?{gD%A7S~R2d z$+X0^xb}jidC<C$JrxA@We{NA_K2+xKY?m^0T}RzOGO!mK!hP~eVVwR3)#ar+CUd4 ziJuFxj{8sw`vp5Yo{d}{g1XSWi55d1x^x=hP4O#lapBiLLdHG$H>nnH`)5w#f4GFb zTxif*K7!K*y<)|eTVp|Is7nFZ<pS|9T-QfY+|m$u&>y#Q3D^IxCI6o~@jo=9U>kq$ zJG#^m3L-Y#i`j7@c@?vbZ1C2y+VIKhL#T(E5&l=br!a7%nhTnL25X6XdvMrD*CLS| z7sDyHk!U2p@w1J5T)PaTef{WT?%JX|A};I9*Ds3n@FR*l34CzeWI3!BloFrdGfw|_ zby)}&H>1%e_R#5`O|}i6@IVIqN)(+fnR?CwP_u|rYRL<Ul01V{Ys0H6j4S4pn<ai8 z04XUn0ox(cQnGJlQsGNbTn^u%7r|*uZ=%1Z!Yb3io?R<W5f?{dwvN%f-Y^<g+fVi6 z=G?PT!`qpKY`}zrGsKR9|JH&V*WujFtjn(ETCEt5o3GlKMp3nnks%RJ8;=9oKJ7Gb zpoJxUKZ_+Z&j?KLGiL|z`5Z}Mc&-QVx#u++fvbk8tk?0Fx5mwtCaCh^{rW%eIT~Xg z98KjpOU8${QNdD<Kn-ckGnEi_Er@;q&u*7K9w2>uO^x=9gDqR9hp_sbu4y)AM83{~ ziND}ChLtk$_()Cr+ejlWB}Re^LiX@0LE()xJUt1k;hH!}VD8#VXK+g3t9}r>*WJp! zUvqxPKQ?E|J>!jrz)qDhx@BwzM;Taw8Ca|LTUob#GL>uaiA?lNt2!q>x8_{E>`aPc z>$Q1}*s^1pZC2Wuo%*i>qJS)cN}l<4)4;eiC`*gS$%-OEqr!O3y&z<L*R+*6Fy249 zEw|!q%>NOI)t$ir1#saiq7{*_Dm{Jd3;$YL{dqt#wTwDo$TPqYoQ!!>k$HZ2ZV>sw zPXtf!`^(kiH84jm0Rj2ke;crgq5p?9`oC!S4+EB&n=G8=8@2mm^4=(khr}DNnFlTQ z_T}bU?NsF<5S&q^qoZA`!$Ycj6Jem#)UNk}3}ko1{#~sBuvZrc+b~ErFla*xRRY`a z%r7IbxkPp0wfE59aUwx@-1YW!q1L}{3kRXkwxJOIj$jN@8eS!CLxjMnDF4OOfl@$P z7vNiBleh|`<%RZ@Pf9`3+z}L=Wv+Ktwnb$AsNEueq{8l~El}>0Bdj#w;E-+G3F_Tk z=N8DCPT_y21Xt;Aa}kHh1^{uWz+Jwn>&w$kRJ&h9OOXKSYpHhDJ(1Tq(DSozZO!yH zr511K=PvyBe><=XXsNIu0<f`=68r%4ADcVm_`VdzQ^RKRj9nucB4V7)E{hVzw32Cq zmhNQ?Kqt})qTn&6W}dQ2kFw4s>VlQz@>J*ti}&=7FMpFR)(o@E>9LjA@nxR|&*82{ zY0I!c1KU~r9x$sdbQHJmR-|j-d&nGM5Io7h5hgGpR}>N|W8mS_A}=@m1c0K|&$>qc zfQ&#H@o*vfras)R%oY2^@m4-A<vN&UqqAXN7N>0b_=d%hh%$usV)U!?9L+TTlSY1? zql9J)8=&=HSUXnTjmOlij}KYM;?xS?dSHz-1V+NguDF6%uH*N`j@?(TpLMX;0s<z) ze(t@RE*^8BAA}<Z0B7phZN@S2iYJ>Qhgz1}!4uhp-WTwFH%2IPI&0dV>6I)fpTf&2 ze=r(zsnLl~=!ZYy3>LV3(I08uGT|YN9<m%zyo$ubYl^T^sl|xB7M6d%CQ=fp)D_^^ znOm1^(^nn|zVnyCeM_KjtL@%=BZ#$oXy8YE-2MV>_N@D_`0nEIiruCS7x<IX{)SS! z7vm*oZ2D#ajaXB3or=QttSq%fA&-amDK@bFK;2+_28$zs>E{Eu@dk3`Q%UC$<J?!Q zcVK=$!h<qz{&Ojt3hk$DwPSSvA~rM4`urW1Ev$C*ucpu3)~8>{Qs$C&)^?viIUmOL z9_i7g)J_}c->wIE*q+(p@WZU>)EL9eRL|Mrb_3=GSM=YD7ug02Y{y1u_H7zj{HXHa z@-?vJHl#EWn95_C^Qd%984=Rwf9Fl9nR;r-zX%@Jnu^Sgv8O<Yf>!Fmaf~3O9&sTO zOuO&4_9)r6GDz2!z5=t{HJzOd<jJ1h<F0KSmu94|I~-Le+@`Cola}&(fH{~S8bEDu z3w+bk9Vhj#IncjK`iFYq)p48K!`ucoBAmVz$*=@F6}z-JS@>IAg~flZ&HKF_-_V&~ zydOLL(&sHvqxM{4!NFMP6GT6|vKsGH@S^U*J{tK3k^%2*u$6&*XP>WJU8G?cMJlxC zl0z>w%TBayeCF6l;?0SRD*GE-kd<~;Zz``wKrqH*hxRPg_rT*+#Hd1n2xt$X3OtvH z7_hHB^F1539-Z=@^BoyPG==FitD?3HVeZLcClckyGjlN2Tsh(_p48k^`R&7Gice_> zX6?T0_47d$E1XGc2{!A@tiNP*|0=Gnmr1{$y6g~|)ktJMI)xUvlsdxi4nst&VbVjT zQg*K-2X(Sy2NCcf6~mB})Z;l{#!}(Z1L-r{02zgW_yp*8yTe1vJs`}P5`9%TLhnCu z9S51hf%-OT&txmJYQO5I&0Mhfi^zf=GvQNA5n`4{nC3;ih`Ii?<;d|NoEcGqcUm>a zSMC7K@pCo*fqT^v|2d9NE@C~~D`@YMC)Gg|SGw$q{|s6$9nZFFF&Q%slDQDl^zSPR zQWD2GUHu0qs4Bok#VkHRz$s&SPHsyk9fFsQ9Zv|>%pTirWe6P)M}r6%v2xqq+lKz- z)@8$G6_r!g0nGniJTG>a%>afHohrGBBXewQgpiF}#;q9E(HW^P*He(!w05OPs}4Jv zXwp%nFi%a>=i`N$Ydq(HVLffNSUbqwbv`=~MC`Ha4SVX_Br~Pwgc#>fV?~(#_Q*@= zaNTCoTEoC+<n#~Ye^G~6MY8Jwa!+|G4nY1$cwn10x|=ti*CNYZnMJ^;591@z!arMV zN4-8L5_~k+v~f%89U6ETPZr|Jv1zYQysGk&ybyNDWr+#*bPX~L*0X!=XJK`KNa9sK zx(;s`K+{(BOqMs1pOqr&c{ab3%5)9m*?EEmHuZfaUXAP6TSA86Ta!VpA|g*HTz-0( ziR(+oxa>o@0{bSjK4qnK_}DCO-}0T<GsTo$`Bff}s}#ZON3XzfP;)%A8ek`V!3%SR zPPN}&bn}&HF|VkdnoGe|LZBakDE#2@Cg5s7%V4if7TsjBV0k{?k7vQ;vV(nWuz>Yl zpXPB*OT&JAR&5+@$pzSB)mZ)W!J?aV+(UF#_P9{3U5(@?1B(=u`VhG^Q_GwFO`2Mb zx+oULY+8|j?}cr^PT1}uT)Qc;vBPwe72Yv7-$~+Q1Jp93ak7vgm`#o^y6q!Fcwq7| zprx{AiP(%VZk^_l*5Rl8xXL>p={j7Wh0vV@mvxX2xa|g{h%lT^{(9h|wn@5My6L0e zKaMlEXmzO5Y@t})ZZc$1K(?~iq5R?wl1uk)CG0pthrN0)4w*^aNn>lJh;zXZCE1Aw z0UWd8P<J%9qSfh)F=4$@-;JZ?o>o^e?60G8&6mUDO~yr`W=4UrFMBsl$(g_W!eTzB z25eDzSb6HcDC<Hc>mQ_ces<~8S89WeS~9!-<uUj@>m^}*_5hn~T*hgj;eONAiqI4W zLzE>gyVAIQ=EuBvK>Z0L?ItgGm61I7Ywxa}+26Qp9#+Nbq`R^&;AumpLBGH%CvRD_ zniPk(ZyTDUf71HJ3Gvsa!RvohNLngoPgECgJZQf*xON}F5ncd?H@SVLxL`$_zlRfo zA%|d7m2IL^G>dOhX7=$w%Pp2A#AYDhMwlC-oq1W8#d<Eqas&h)p9>qtT?%jiWs!E! zd!Ft40y^${71@}UBz5=i-Il_E0lT^Kh9q5_R?a4|=jh?8WBkf~3!K9w)-=R&q|$nC zwxTibw1y`ubM_R`JnCz{fEWMINxp3TeZXK2S$1MwI8u%A{?Wl>Q>boUN(CRE{Q@U+ zQ?Q7KRUJ#qs_5j@0x}8qd=4wC>1L&6P;?0YFO84g=;EJg9t$zS>b}WJLG#}o8*I`N zg1obHW$FeV%RDc|g7-z#O8u!7i<=k(=+Q5K<}!N>a68D><6Z~^jmKI1Fdxxw)||)^ za*tDKz89PCE7#K;xSg_2Dx+L-aef{<-erKx_NWnVcU@R@cEiud&KC{@Rl78}Wi;I4 z+;IPRSbp?pI(p>TBkR2l@NnP8wi-_xzbkfMkhsV>ATirhVb!wc=4*?pV~Qz1@#@*b z#@rXj`oXcs<vJA{=Zrk<O<=_e>M|^N$r47=xR@QHYId!SoC~RT0%Gs_7em-B8}W{A z#38T!^|vWHD=bQ`K<`EIxu8!mEyUY&7^mjrNVj@`R37upNX7M#;sAMl^Re&35HYX< zn>}(M2bfm#fow}DG~mvIm82R6$1O`;nRx;yao+eI*~7|n@cy#L@7fHM`&d%PXsx-N z9Dc-lGMIs<{Sph=eiWqM7Jjj@b|Hwww+dl#|Cp%9;m+5M-)%lOA}Y{vc2eOLb1kP0 z-?KpP4d+n2A|qOxfYSB^Li5y)J7$uYccGVa$01{;Rk==D_<I;bw8No_6>UgA_vSs8 zUOpKRxo<%m|8=~G`)F_q#U=>I=~Lo;;`_{?I<d_4QPQN(`WaV^M@>sNzNtbq4lZ2W z{!Lffuqk>N?-XMRQJaJ$pO;I#5+Gjb%CblADnVv`v!!xIOYZvufNIiHeo|+COeZaO zWPTn7$v03eS=IJJ+AC-y3(*EwYyKPkw8X7eH%d%?>1UiStM8b^D`Mu9Gxv&~W4t*g zmtHo0Pna0t9RF(CM$91C28n9^1}ZN-)4AqqoZssiSzjeFz(H+>ktTY~IR{@~u3*^U zAAr_>%58*+R}-&!Tu+UWkR9OVtBcf@_*>a}?q4f(vA{X}?N%H)G<i=ZqX&KoEH`}) zk;MXS@o}a>5qK2E1<JE3;P@Skn^9$Vdv~F$BskDyE___1v^LFEyw4Fw{|RGw4j%Wl z-S$Glo0P!55H!?upnXm{3>99DfA0+Vx7PgkCijm&ae`W>44hoRAQHMlsPSdU_S%6d zr~~DDH+7`{S2=ID;vT4jnS0cs+Idhg{vMoQiUK1J8q)RgmK;+-9i0{*R)Vd%JJ^v6 zdvcAu5J$I@@-yGSi<yWk)`yX^Oe-~!>KG!lY^jUk?*7@Ju(xF%GPVpaF<<#}doSD3 z4FqUiWU6rju8zFEx`aZjbC5unwutL%U*f-Vh#vAo_KM%Z#Y-b}a~F+DQe}r)OF3H7 zGWasQXBO5!HRCwvZ*T_TVn&BkRB*^u%yIQhP`yTC1e{ZXQBjW`SCLcZ##3Z!2)g<* zii~N$jL=WpDu%<g(=M((IFYFKV>1}AoD-Jlm8oak1o1_D9}VDteV#8{v}_nOJrv?D zYnjtQ;9t_A(YkyJTUa0*8$kW6+!}~?!V!8E!awTD3h!Wo@~5gH{&kv*mcd$;$2N25 z<eh}}rFi7p^@*4ITBfd8w)=ZU{L!c*v+Z@A$WQi>z2&MKCtya16u)=$=BN^9j!I90 zMO|N*Jv}lU8C^BsJ}(=_VYQ??ggNCq4magPyi}ORu~IFi*b-Ra_KJ7tFm7L*&_yVk z_U62nIrN=j7MlT#Nf@JB5w{&+4#^M5p7LbNx=t8cniHAmGxvefB^;M5ulV^+fe<TF zi>Y#p{@-tAJ?E6-+cU>M2fpoeHy&*5f4jJ8u{YO*{|m47e+;>Cai<j?5D<{vsz!^C z)xcg(NJ&s7T7NeWIVVW9Tmg{3Te&%=_<xZ)Yq`3qk4jC_p4=Q=^#5=2|A_rxApNhQ zH{_>Bxf}>Sykq`9LQLNPVwYAj&Tkf~tuNDw$-I7SRF5b=t%vgDC+ocB{-?N}L!nT( zg9E3x;n1)e)>L&2)t;rUe)fv1`1bj^C;sZ{$}?odyO33XmQTL}=<hE%e`BmwmLu>O z3`XFscUb@+7w>?9tl`t-<m5sY2|Nj1aw~XZe7d~DXA&-H$J>q5y+<W#>#l0OH5sP> zd4})ghK1gG=6yGGFu=pG3D=h1Y9~r;_$WxzHvx~#QFLziH_MH5JGB%;^SNqJ+L)3t z>zS4F@Hww(LAG9|G1Hq?y^fp5kvC+Z@kd8TCvo3`{R&V6>g>S^8IRkhHZqYaSdanB zh<ICSf(0sAF3DjE)KbF-W4_$QWjpNP52b@a>TfTr4vmhU59kfQLy27Lt+H1lphYZp z_==OaY;3b=XY$9aHe1)6aM|y(mw@oGUv7IawCm@i>JP|+!wf`wkT^puEm|)98Zht! zq5qR(M7k7C75}Fk8!vF`f~*H=0tI$ARpaUxP`2mVvtihPz`;|QY3tEFu|4ZFSG4qQ z<>D|tzec;`_D>f~U?58L=-G8AhR9*Ez;A~JZzt3L?Cj~7MF)rMKDP2-GX>I3U4)H! z!EFT4v&jdKQ>#7%GmUjPU7`M3)+7Dv0cDbZ(}$eL0%E7|!7l9Ja}_97&FM*52IAa_ zYeaHi1-mKK3Qk_#4fr|7Tdoa$e(XHvV6X%JeqFPSVYi%>Im<+Li!_geT%MsUB<&ug z21-7!@~wT|wj?!@b`a$qe_=bDe$}EAj*^;fSLbmt96&JsFto^JE$j{8K&hs-ALk2a z=N_jzyXE2_CQJ>sfDWgZNW-?}0lr=Kvh#8hfPuhas+9%4@d@h5!$3yw(fZ*!{ep$_ zM+=R3YK6?n>jb=tjhsp_4$y~Z1R`-id^R%M8RITR@Iyw_A&%`=nW=%dE(7!m5eki3 z7Lc>ys!2I&R4u?W%RhcNsG{Kn2vy<EepetPAT%o!BK&g_G#8PrBhbwtei=`|G~Myg z(**@&^Yn;6`-MjXpPqAFU{>(8!r7%(I7l;#G$JI?oA2V3J2(vdZA7L)|5B*cj-g@e zS_<}||I@}tSe<BK)};uFD?TL*=ydwTh0|piv@nRz70y2A9}F>_<qlSXj<<Y_pEOch zR<DH3T`yp|(m!?o+)w%NH>^1iBMv*86lZ{-V9Nd%f{XIdXmuuPz&R+T8C9=l@6awU z+kpW8=Yss#sx;S-ru_dsB}i|vMW)6%E=b2^-l$C7|5ifz;s2#c{x5(VB{aM45cZxX zLYvr~lGyzrz5By|fa<nT(#C=(`0pgJP{j-_%z=jUxNhPz)&Ey!n{;P}b-=Y?H%EAV zQQ#IWl$-gSC-Z=3dcgqXkl~sa^|#%dZlp%WVnC1#*b(UkudzxAuKnOsK8BI42hNCt zak0mi4F`b+k_Xw_0a?MA{snN0#q{-vX9wI8KL_&<Sp>`-;)89L0*>e4OAXgoqbL~o z8eDnBI)^Gn$ydzyVltIxvRUSw{)@CL)IUf1|G%Y6dBA;iS(DD<3tIw$7xe!v-oGa| z2>$=rqJnvv4!LHLiEntRqI#buym>~)cvG_{7(Jt6jEaqkiHYS+18QS3k3pb4^k4kn zZzi65a{7UDBvt(IR(`!5Sg;s~V6irVuYXSYePnLWtxx8Ccbo{I;UPWeA6eEy?>{7L zxX&~Jde-H;lC)6$wd-^&$P;_2=thu|v7*2;<1W(B;jBeVv*wp2zs|KMc=DmSk_Uhy zq58e7$D3yvd%IFRw8_&fYiSko%i@)@5I0tl@;qgVf`aF-(-POQvcKk2iHo1s?-WNZ zCFusI<h1SzK6fsC*%Ytp!h<_LaQ)$Xyre=O@6lIv8Jo67D5G5x=1xK}NkhU@nOYP6 zCMlTgDyO2$CZ~}F=pNr(5fbvnl$$?S)G91WjCb~`sjsu^iwil3g~(g$_a(eY@{`%+ z^tFrt6NLbv4cpkH*(*f_O48`gxbum-f%Y*ivNw~Dd4^T^Qzs`yq_>*;`&%7#W0s9; zi#wfcGXhO%7%}Wi7MT!&aMC(fadF*!rqF?P&6Sx~+H>o(N9PBHMakY8YpB5ZIE?5Z z2mh-A&7tq43{FxEBu*Kcooz0mlJgW;*sT|Z-l6(^LBd553mnpuaLUk(QkEuj<@FD9 ziQEv<5*;OuH-=V%8g{q)<ytSf1-u;WlWc!o%#chr8AZqq4>K20jVO)uoo#Z{{`@OL z!Mi7h^nBU3-U*x)%?Mcgcml}#^Oo&o4Qa+C!>Glq!J);@CB7xLCRIo$OOjQxe?1*d zY^;!r>JEGJprQ2M5B1-kVj1JNHNuSc2hp#rjIy2&{Ce9??L}nM%0G;x!WKbDMEDsT zZMc#lfWI<;EIy&VXP>gP2xSSbfqpcPsA5R*i`OJ<<}z=+x^o&0>@w2d2dVPPY&E3> zuPL9CYde}xxN(@i`!IP;_)YAZ!HCKjJSMYFUjleoWb9^7@L3r|j};UXUk@#36ML(C znyO-Y5`M?mhdUi24&Y_plJ||fAA8qTV{M>dh1zBG&ajgl;9_@3ebEt4QA;cPd4*z; z!#B+2n?r!Ip5NWjhlsDwC_^iq-XSG2lp24yoL!PQDrlvh{++v8{agxSmJ7ipMr<#y z%||4(+}(R6c~!qb5<xnfcS}OQyi|>uT(QTe&hg^`g*xf(HcYYY7W}h+<((W-7;CI_ zo(sJr={x?vcOIu+Zo*$Xoziyi`{Hu+@k-s@pG6SMMP11WDTxw(2l}1iZ-=qXo>cL< zR8b(aueJBccmJPezWON+=l2^cTycjMhhhbayE_!W3hr9m-48A9R$N;gio3iy<luk; zhr7EUeqTN_&mZypwAt)zW|G;RB$HP%k{{0|iXMQ0=2lIvfWJkh#X_y3Tzv{J(^<(0 z8>+x;<Hj0$cwtjXc&OO7(21on6#YC{9DimGi1PlBTP`;RYgxs^&nqI*G5G<brai7W zn!=Z|ha^0@I@URS2&ot{f(cKAo%zZrLh}l=#7Tx6t?;+)!sHHbt1Lw^#VVffNKOAe zNw7C<7UkvG4xQOWa>?ZDJG0zue(0e>YL5gLBrV-SoS*ry9mn2{xtOHt45i$^eei@f z-R_eweDc0ga*Tb9b8^l9+#L+%ue#`4M<}gRdi;*QI6R8XNWijMFDJ!5fx%3V$<rdD z_4UZ!iAacn)ucWb3tyo;qf~8v_~&9sf?S9cAg&ZnifxBB`NBIiO5VOzdw<Z-?%t!7 zA|4cq%>Gtz2#nse*71CNxaWp5D3Q2T#Cz9#wz@2!Up8f(R*``XRE?XD`%`gGP%TN; z!h#*g<hAliP?jN3#t#r`So;qXwwdv5MjNF8TQF;yJIK~9Fw`>DT(P6am2?bzPcykC zH~)!(Q2csK<?r(85#T?m73~#py&56vBiBxFBI?%T$^LdH*MtH3;-z;`;#G|&)MZUw zuLw(m0c{8e6c)QKBcJg$tCTe@w4KRkUOK>iM^fhT5KH&ifu&zt*?A*mr2aDa0;|=( zizkC^|9Rbjr{$LRWR*41ep#qx&fT8;4P~E{-Y1!^;NmlKv^2|$@R&Fd@XOkD$Pmau z!Xi^S<lx2r<@%CY9mh1nVz5Y&w~a9_qLZPLRdT-*`r!?-8x7^!TU29yaiWG3T}rSF zkb%RF-bGQ9W73lFg?`Vfx)0F5!8rGu1De81EqFM&4H*`iQ4`L37XtnH?k77%)&92e zM@Lbm(7uNuc~Y67`Ut8ybNimayNT2KJ)E&zeNa57n`ypvt1=0hJb-71-4}J5dy&jN zghC|QPIc(t-b5dI;rI#Va25b>r#MEDb(eC+k5F*b>3r-zM~jNPlKqzRjWj<g*Bi}D z3H%|uey><NSXXx;7DFqZoer6mPZHsrJQ$umEd6_2reC<<Lk+)fX_Ze?yv-QxpM7%T zkhOL~&3xpFdK&R8L%OkJR;1!ti8HD*7Q0?JH6h}gM~=X73Vh&uS<b(@)*UW+l_bHB z{w>eshP8gVPlEgk1_v|E9S^=*^CShnbQ_^yjJF;nO2HDRh^sOW=j?{X+ncWo#T`z( znygWGfA!amW(Bt97O%EUXgRVim<TsMiZ?S3_KsTVCX4kLC4=T$OpFC`E7penZKzry zM{juN3nhZXcxc~gw&OpzAYg(RB+&Rqtmj$WCw6tWZrcupEOD8ppHC)O6(=E$X|m;) zw`f1&za_IG0}m1tq*VV~L!Yh*i$O$Fp|pU@9n8ddh!m7kfG%|nlml%FUDP{UcW@ob z_8)QE@eMZ`4poZM&nx&X*V6$a%^%-)j}dub4_dvM7on0GtpqA%eL}rlIQv;A(0|cc zKOhiqo4A8qZoaFi;jF=dga1%1K&3=B{rs>z8l;jt@_BdZTkpg%sYv^0FsM8C=ktiC zn6+>GR_s371?>d_z^(An#UYDBGzCZbGL9HY5JwVqm3mX-m_^qWXTib}j0qi4Kp!Q; z*~xl4{V-LENO%2jUMU@)W~|Tj7z|!2+%J_NAHqjsFHCE#<we9$$Q|neV%p>{Mu%#U zr(ImmkLLxQDMBP$LBp}DDplx-@c$Tbhs!^Nh~jN_N>V>-Rk@PK2{bxuq6(UHnr20` z9vF#-VT3)80QZ`W$s%sD8d)8R!@v@~a=Z-G{l(aw#>_Z-$}jy?Bh?;w<1w;*qa46E zM|{hz+OWn3=oO8dTUzg_Dik6%T+K<;v`ztJ^;dN_=I%JS>=X0236RH>8}_yDzxY6` z^p60S?Mxj&WlX|z+~bB}j=WUMap|g*^!-!8yT;O}>-UI>nYje!;H0zItZ<e9taYci z4JRUo`&H#j0_6%e_FnZ7ol>#WzC(Tj?V83}lGw=2IPymn(<|hYHjPEMYi-4#0negc zl}c>RN0|e9wdt1z8_{0a#l-{J9@=Dmp;ONht2GeCfp*|S6@L#qZK^!T`-w&Jj|fq- zb?>*Mrf@QaPQJXX!(Q6A`|G5DtERQK0eQaI5OliqMi)tZ`|V7O#2e|F8{DXTQr%ZP zmYawJkopgcA_k&PZ_Q^>(It${i;I9&-S_c!Z^I)>_nPBBrnK^e{a*SaUHrG=%*qkZ z6I39f^Ok*bzm6=2C<;~1z_7N2cc6Z{mjv)5;?tJQS<U+V6hvCQBJXamvtBoA4BOuq z?fP8ADw=|!zbeSdrj19(HslW6sqD`^H~)i|NSej}zT6Yviu*rQqS84Wb(P?#Y}MZJ z%J++(@{j%<Nlv>i7!J6|d?_$ua3Z~Y`D7o=h~|s3xfv3JQ#%OPo!$!k5w)EP(yT#> za>1uQ@?a8V3423%|4mc|r7+o^)>q-k8y1h=7*Z6YmIEKV#A5f?w8H*=GgokH7n;PJ zquzdP21(^C{2;HM*7gTe2~`^QWA#xBOFYzrgNF0#u9mc%a7uB-wDs(<_R0A=qpsdr zjX`k!qUlU&$rgX2MzyVL1>V@y#qT>0df}}(nR#Dl5Tt6()4sIYUK|UApFmAA(yDvB z5BA9?S?=a{M|}=2n<l`5Imm-TeDm0z{!pE%QPg+GNK~ly*n!1kTwSsG;!y9856hp3 zIjx`ZvgLbS314~xH6zH&9A(z@3u+9k^-25+D<hMw-xqJ`E}?n?^R<~NA|f&U6fEl; zxX)IRWBssDR=m0~P*oALqKQ<36-*zJ_FlXn%opzlCb{ylLgMorS8k)PPM8QD7Crux z;&+qXCzhS9cldQdBcwzQ+Oo8|IBOen$4;IQ)BLQ5xQ?%r0wtU!-VZM$_NfXxNcnPA z{A&^zOmN8p$V~I?2!QIFhyvz}K;>_A{dSky$iX41u{nCM8@Wt0b(OTf(l>BO;kPYx z?BZY0LHP5E=-+H>2;rG(pec*tPVFk4jIHNB%aqk6_=cvqr|sIH<w|DfO+d1=hY}oE zSW-ZMK7oQXYkdUIJbkZ5bBa|VCK!pW5z`_vd@`yJcM$M6@w|;+0gLj+?>31KKb?9} z9h7^;I#TaH)*|j65;D+AN_d@BUMAFvN}5YS6_tKhpOD<KYUm45uN>X8-%Ap$AH`Yx zxTrIO$O<%GiPw$FzioV1KwV8eiyO`!TuL!jqcM!x@au-F&E~~3a_lw3NEW3QZ$G<H z`_5QObPLZJ{S)Q-RF2fU-Orb+M2<rx<hs2ugRXKM7d+zKej-hIEi%f3vq)gs`{{QT zGHfNEOI^%5_h=h*m&F`aHhMZPP<#-{*f*dE;hvjoaR@jqG_tL6JeltL_vM)jTh<pj z27IEb6T$oZYxo=JHcU;_=*{Mf5lNtqd0kh0FtRD~`+ZMTMWr_$^c#CP+&{1E)L|;m zUqdC?qZamDLE@*&@ew)!0<tpr+5$@*NQnw-WEBRdyy*^pd~}Awh>ebF*z#vS#{=Sd zBL2_++`_y<myNLh$mPRrD)2(%u48>~Lpz#_*PewCY3r1lN2!JxzPV)QSMA)*6yBwq zfn-QeO`nAr%)1#wpxs0@E#?Y-7FQV*D{H7!?Oje(@F*#-|G1*H+%#*q+6c3aNgyE; zw2}Z`9~qv(L_hy-#2fy`^47?JF$r%!7Z%f=hNY=c(?ZEN!SRzXS}BZ|<q-S6s$0J6 z&=P2<w}ZAaEFxI(q_#|U|NZp!F*o5MVKQKe&<>_G_Z-Xn<FgILGCLR%{IK;9{a&R# z8yE%uZ}7Z`WUznuc31=1<Y9O(e6*n>B0-GqDo!6iuT|Y^;kwy$aQUveNG~|P*E`w( z=<b<~JZ+@+`DDe^fCYJ!dRQ+@Q$9W62ysfw{WE*D_)Vcr{5m}M*aw{p{sk#fm2TJv zcU%iq6AzMyf5HHi`d81yS8JLtjE}<1GlHBq7_;82Oj0Ee7Sb8HQ+Ayl#N?|WO8@AS z_iRQ34T>4-{P&)dAsWZKZe?m&bchG|YR^A0$Tyqs<~B40p(jN)XDPFp-{P-~0OfXQ z*Ek*7rCa4J+ua51rBV4j<dIJ>R;VlnT!dvIQ8a^6i&vuSg>QrPfidcS#!TRpOhyR# z*`R=!rV+`x=_Y&RxYAPWu>IuAK^uNz==|{_+do^k^Fim>uvWktqZrdWcRyaq*kVAH zzdAarvmk+4)(lF}>DGbdjA_Y_Z8@SQZF@jaGAVLl*LjpqMm|cf-lBx4$6YRKiJcQF zD}(mN@c5T(#~O2Bm-lt5pMI~Kjwg3Xl`wxafpOLQDlU}+@|!;Lp9IabS%Qlac}QQK z3;82sS{MG7*uUp3{qjUVpL?i!+7+dfco@EyTdBXn?{Hgqhl}0bqlF|+?-6jDG~^7; z{OBELb~_v0e!7*h#qdLot?^!}Lys=;?Mn-^CeU_$S~qp2iiA9=@bB~oYDxZ|X$21G z?uQ;xhP084@lx^dm2eSUJ{zGWP-|vkhr7oy8E>!X1Lj1MMhUkxr)x|PT6fkPOo|}_ zDDWeH@2g82JN~iEWXpi2OU)zF{y`7GVp?snE43!U?2DO4j2;G4#jmPutXe`LJBn=n z-6f!xIMplUZ$dF7utJZr6RU&Fy=EMY=lg~kALmqo<2SrxD&bMG?m@>0<q}I;M3Ng& zgdsW)vEfu9&-*UJe1n1g<f-9ENb?Sgrtsx5v~vXe27RdHu<i`9s^uqcXCs)^OQyC{ z+v}yHb?^LS;CVKlGNHkVX#Vuy?czln=5?GpZ_Bun3h;cy{-;VheU1wi-eoFvw2}5Q zTBA)!C%2dTJ@r-rmW>n!N_o{3@3|!*jlhe#e|j=mbKmb6Wl^8ggeyrJR3UeLbddf5 zT@uzqY10RGnu!|K>K4m%`h+*WWjl<@s}a(NcFPbl0^qhi9k0iO(E4JC57F9@B$08R z_J0RmtRQJK+3A~u8;yH9SKpp6)1ngoFZJV&a~Z{rQ3MSA#A45Uygmub0`z}K3Z{Y2 zhf~*UAlZ;mEwr5;CW%)4giZ!b86>4~aMzljXQAc#8<?HO0PO3Cy$egiHzm~b@g|!D zJnW8@R3ZF!b}9F|rrY6x*-+IbKWD(-cWF;F(VX)i$5iR#h%JnLuxZYM^6l99PO%gr z>CaPUauV!)&`(Zwg!IpHq7nXr>H42YD4XQwWKYPXf8`TwGerLY?;hAAo@%3^`Gv}J zRg<KbfX%B_8o3^qE<?6ea!dKQX_x87l^h%eS)ekk#X9rflsS$2d%;F`J*BGGgqbe& z+<^o~__B#>vMGqvyFA$x;lg-;wR#-E_SG}u@qNmT(lDBk45^*X;a=tEzIX<`5)PAx z?;%d*S!!dZw8F0B1Y{qOh)!qQiBa`9I&H4(Y%XaqX(VM+KD4}jG)lj4A54Jv2wSiu z36W~9gc~k4XBWe~^a+cQz3j;kprTE&7HKn%8L)_JrwNtH{WyzzY^C>Qt6?m154GX7 zuR1wCDMM)0&bFS6S&;5SI&t5fzyFm?etOQ&DnO{jd3yuV9p{d0rLETj?#9~Duse>; zJ?bcRRilqapW`NhM#m(HB@pD<7FH=}$a_ozjX_UOT}JXjB%jkAVhD-<9JsFz`<2RO zH05+bWUEljO}b7OxJJW0srjh}`n|=rL01OCx+pCx2=k3c*yMHq_ac`7J?t;tT*6iU zk?^5~y$EwU_9M3veV>?;dNT@>A=V&2^fp1DSr|-5s(ivNN}o7FeRrzsEe(aKaAf%0 z1UdNI1kq$;TTtQ@(HovaVTh%pHo&*GPo{R2)@Ej2JbYDgWzU(QUR#bfS}oi^kbWc$ zi*$}Tw7EVJ^`FFVEfmW$#!A%|UP>=^?%;*WZ@=FuiZ^QC1<@h93LNBkO)2qS)suIS zK2AH+Ur@o8V#u(O+X_RA8LS09dY1~*oY#b%+4(6Y)`)2*R@?$kmSsq_*5Wkwdhpb~ zqY>PP`>EL6<Qs`W6oN>iwQ;D#wwqLYBf!rhULXAHoOFYKacCKe5sg-kFVbz$?c}vR zo-079U8L{>c&!S7cZ^gWnQ=}egRjEkizm@tYvpb(FJAE2#?<|fb;os|vf>4vZ7DKb zQMsqMN$mLU9)2+EjJ$iY0vU)bTh^?0!fBTS+cbr<cc!^d*5VQxF>h%im;~d6v<gj~ zEpNaVXA%3iQT(*RPHtsti#{1|Z&c7Yrj|T@mUxf~?=EA=Sa=I6MSjofo||VXGsdf^ z&83sQEVf4`w^qfaMR4&&*9W!ue1W5s2Kc|YEHtj#O`abkFFZiZYTQJSt=gG6C!a!l zajCXC8>Q%83>n)%%f1XS@xjj}ZeSDMj38}VOJA`#O=ZPPJlT}cnn$h*seQf^@M8}a z>g+1@BY!IjzjafZH^Myr<ZF-O_44Dlch?NHz!?fz*&#`H3vV#xb;O;jN$gOFQ2EW# zfrYi(*G)-0HGu$jY!u_%>=as>bc0a4g(|ewyF7dMi7@+Gw}KcE2YMdZ7JrKwvZa9` zz~B;lEN6M!&)alO)u}B;>tB$)rk9Ff-0{JypwrT5BqLMySsLRPdoz}qUhYWAi=HD8 z`pFe8lsAPcY$eu6uxRO4<QzYIY!x&xVASs6Rt3#=k!ch9*cZ2N6RhYROH-%&@~WK! zKMF`K@Wk&6jdicE<9-rQC!I<*K>xlnhAiI(Lu0~SHYbCdL7R6U<74)th-ep+F?pmS z@zPT0U#4G5{?RLw>wWwDp{hyI2r<49(AlMd*_*P*S4%|@WXMSxTB-Sc7x)<ZWm_yV zXJN@QD~^l3fUa^LNBZyBe0S&GZTNQKZLCTwAm5?nmqTvf&|2JpYfNs}YmG!UrMe{h zsgoxf6F>tGn%iIi4LCD@_^XgO)+0qX?Z=fz_C1WCOjrB&e7}=rHT&<M%zt8(nA>~c zCVQ^W+!LFN`y?QS?D5z43H*}&eg&UMw>@DkC|OU2YSL!VKi#{bMd?ZkM_@_U_lGu( zeVCUPQ6Dw|<wiiLj|(1|+j{kJBb`ZQBTb+WLlK7t`3lx-(x2OwLggZzG<c%J+!z6I zQ0EKAMFqqMdJ!^plkb1_^pVR+swjlQa499)h{Z$`k6_g0q_Q96*<5XD)q;Eg^*m+H z){qvL34WxG1+9cSZ=cDgd}hGxtiZ>f%gakBN4TWz^4H@4rv^^R+JlcmyuLG?gtKDL z{01#JN;x~7#qBj1u0Z^Ft2~=UupV&9!4FLls{^`8`{Pz0O|{RajU$<uF+baJIhIBj z)ylPc?<YJ4VWk>yDy1w#M&z(JJWwZG@buCR7Go9JcG8-3u!4^DO210@G7|{iYej~* z5afil#do)j#GarqsB8j1U2@8%bYOg+Teb#k!G^0Ub`G|#XbiA6@sCYfTO=)(m&mw% z8dG;X)RqK>nuPRp421^njGV*&cxfGx%6ISKFageDBdfVdtz3zK*{FRgKOQgkCO_aS zmXJ;m{X3so`IVcn1V)}rBd3n7J-6Xy4(YAwze{aNK?nPFQW7KAXH!#)ip~Wp6x^zu z@(NDcWfP}EJj4Lbw@ntK@jLrbY_b(W@3Kn(S=e#F4ZI|{ns3`s!d{Oc1*;>{bTHue zF52x3t-U-dt|AqM&$xY8qzEA-385UfdXnr!Q!jHYCT$QOn{6PFU~#_xtWdV@LbDDn z90}Ko*57R67PG53T~Qy9SVd%fVe~%=otR8Jb3^{>F=TJqcav<EEgc};dbE2&nm7LU zg?sCnf~!~Bk7h*WK4mnMg7{y1r@QSG#wB>tf>c#m+%@kl0bY?N(E92Td}XX^)(UJa zKEU}e?+D*svT`#qHIJ39Zce{4TA_az;54^~<@JLJ#m*>I_B)Hal=G7|&p&tr?v>x` zxa<(63`L-01KN0WtR(@Otl5M2o0;gkkUs|kihYg0;Z#Xgaa!SX7CeFmkoiiBUtf|a zM#K#|6i~{oK6Y{)BvGL*6(cR<YG|S+K7jdIT*LI%vWUF3lJNCNB><&?iUrb^)ao2J zTlWZC-Rot+jOlJi(FaG#e{J-dEw$d$0i=;FY41t#sW{iww{OXjR<%V|elq>dfOSVK zh<MXuA6A!6f$&8m27!CTC-JFmWY{4!=G!^pQ&~6l7t18iPtRoX_6~~u<)-2ZSY$SU zOVa)d8Aan=kMKsAuA|;@WwnB?8}0SCgC=?sUo{G*F_EzqMaNcTsK?2t8#$fm_n;Ae z9Y<oy?7qTVlpN93faaM>MjZ{wu0S59`;~dh(^d=xS6ka60`elNaG|IiEFbC7p>48{ z_1gGv2?`sDqJw`=<0~gl6J)~CQiM6%$~{8OSZ_k~8tutNj<DS}I&s@*g&F|-y}h4r zvLyl$KmLaN3Q3&2%2XChw97rg?Qh13S}55vD*6KR&eo6F$7q;y!ws%hlp|~1Ann~^ zi9lkD&Y+hsZfjI>oQse)&e<?fsKe5`?^<}rI1QnQNgkY*Tt)DiG@(^hdF8^Wjr|q` z3n?iH+wkeHSGX#5PtY%Fq*AN`GE19B5PSb=%G=gD3@>_$oM{bHQ$_WlolUR0s(07w zdqJ*qeb+zU*8k+E1jLw27TMC|BX-DBt5U6U1)G{OBvp*3-fQMgF|*UU>9II{#qm!% z97r+XU_9JUO@6cqOFs4i_1*n<HEQtIT!oYD?O3_4;!MY4;!8vv;gm0vIX(7AFbn(I zRM0Y_#pgsm--RXH2P0Gern7<4#bn2{Ku~9}b7egcAJO+x(haOBo#fmd@v}*`3BQ2Q zms#HpyeAO%0%X2sGzE{d8BssOBp?1AARx_29)#*tHh#<2WO!E(lI|{l@}eA0*msIN ziuB>S{a1@l?g;ckw(DSGx=I_X#l25FhQ}*yl95blzr3V3fKh+D6$S>okD9v)zFAg> zR$?$d=UPC=>`^Ehf82${EWWtBWT?3@?FnS*<am*CFilXC>Yj9m^RkpyXDJFNRr#62 zLLhTh;8%aJyCPa#RDD3{xqAK(>=;6yF#$k6F>9h~V@2x{1Hrn-moFkMjnBE8NvNKF zIq&bo_X6OR+}zhI3JghWx;mf`XOa>Z;`fFb%Wm<n@g2K<KjTLx%0l#dDG-%hr`6TK zbenYKLY9?VDt6Zxdj)7!qUVKI7fLykMg|bw6JfBCSFM8O>LUX+EMi6pj1&*DrQ^na zTdf7^(mjt&Zp-f+l3xHE$y#u)pSWrR|6Av*l*V1T48crS*>Qk}BG=<f7$H`)b&Fgg z=$nuUiAp!c$N^Ik3O^erjy{@Wv~`KR_g?Y}^Di0C^Qz8Ze73X!TG#E&KOpZe?^^T- z@BMv(r2QEi@XX`w^~900&Wf|ylaP=^T=E`7+vMxY*(F-bZn2<_w&C}K{>-GsUBkYN zAh$$R&HVD;$06X+>U$FA`^|FEC8?oEoTkOg7mj0fWNzNrtm)*8`ZZYB6qK&bQY=C9 zI!~_JeM^Tg%H&*Cv1}pFISmjq61HV}ww3)~ojtWdiN0{C`6G|O)#f+cAZ#@OEB5xE zmz`rs%sFHw1mWm;vXgTce0M*@<lv5I4QGW6civAKlZ`k^zWjULc=~@Z8;pNL`&#xX z{%X1Z>T`(pR3DQyhFq8wM0)Q}J#7Z!sF?w9+>l6N#G3Nn9TDL9NYTw+xVd&8S?otg z1C-1;$t*+ytj7~1q5-(6=asVRrUCU&1EEYqmP?m6S5zctV23y9`VI@fWHG`b5BaUg zSe~%e=C<b+)PJD%#OvxzdQVmmmF~`pm-Auz3@VXpB#CY3artK_>;+L0@m`lg@Bt8g z#I4L*ksu51BznCCjSp-p-tZrgWbre%%$?7zFTpd`Wl_V}ZvxkT=mUM3Bgi|mF@_XL z@)&A8lQIGpB}yf=1D$DV-Jk`Mc?i44RcSa(Wx(~nrosOv?4;6_&;2EgywBZQC7%su z&rR6nDE7B+Aj!zTW9we)_O%!Xx!R~?2}@5SM#V(?cY9t~!E*oJHK}1lZIIsSSQ!h6 zG5S*@5eXR|XGJ>`YF=?igm0aOX}|Q^JFI~+Q+`@W^5s2uc8GLcLPGFTjEiSdJ!u~k zs2<hUMeXuLoX6*a8fb7gDdUXi?l;_Q=i^<x3_mDD76(uwiby(qDsf=2M|LxE=Gpx^ z^~i}A@foMK+qvr*E_TeD3NWI*V>2*)NG*mMH28?An+E(FUCOs9z($vl8Xy(u5oudz z?w%_<^RRxS`RPAhmS=ASEIy&23+CG-DM-jQq^+Z{T-@zMff`HE)lwV7>x&x`@-vtV z5L8E6gWqQ^Q~@kLRID$urpe)2za_#(Df^o7?dbj8Wms1ST1>82H9aR^<LX?(YpU9P zD%-7PqW{KEqcH`o-F(=w)-VmVnJvw4$*+2^b9HtCOPzo&gf}fjtY#Jb{Ur3*$NPYt zP8M@F%dFv3!6CrjY7Vy3cgKtyHr;1H3(KE?o@^aid$8kAbhfl+dvS1*Ua#>kmEN~s zoT%5GZ0fM&nB#!r|7|+ms1eAWC%KKjD>7|icw*r4Gso#0?mcI0@{rS(l|d#d)eDwB z7}pc%V4qLed-Q(BV$oxatZ$m%^9r8o-T0|whHmrKjOYGE>;ru0qj_)VF2K<a-k53( zhb5++S5Crv82seeWbnnZ=r+MmUpPCh5vT(RCU?TA)t`(o4D%BP^0S6yPatd(S;xF* zAhxtO&-_D2h9&4OxshRm&SkdDn69<LO`QsI!&R(-BG_B|MD6(*!io;d$0^=C$))!k zl5XhfuBM9gKAztiL!3=Tfp~Z*m3yyszd_J1GFpgqz5x^2Lt6?aLNbnF5aZbK?a~R? zqNQbA*WVP2K&NDvo#yIVIwU%9gQk%Zt3<a`)6sC!r<%b|K+;UJxROuDJHfwS{&J|H zbYX71y3A`KpJMao34*M(au=d7|78ZiDnI=_&twu-q<xbEL&o#B=&4cMj^k&`r-_n@ z?-3KjW@KuK#GsP#%r|gbX^6QXdbb`8=C+{(7GIaO*)8TE$@9gH+gl!Opc{#bHR_4L zDqwdHhuKZYg@(fS;_FxaRA7$2*C5h3t8z?+@EyN*Y5cOb?eiiILn@u4I-9R%^59}B z(dOGe6@2T>hQ8IW^0Dj~{m6ay;3LV#QojQuU{HnJN~!o?G+?QRk?%l_d2MoeBLt(A zNe;IYEt>g<Am7~=lCjTSlxwL8CrnDEyWf6OD6V%<>JvPMZkW3Q2FA-meu_OL#}rb- zdIG6mqWJ<A!^!hbY>Mh8L~EZe?VVqTyZmKL)|t^G6?L!Ck_;oNhr_9G^R9fd&g{6^ zh8jHt`l<9Qe?#W>Bd|B*ZnDhzdWL>2UQMoiv<OR+VW10GMOaFJ-Ao;93fmBeioE7V zd(^ubLLS0bolR*Jo2^l6q0ny!K9P|!qE=Y+x`{u;=j6(<#78$NL;LuWPJS{K#wV}B z{JUkJQ>J-42I1M(hVy|>FFD%Qw&*rrly$!0rX<mGOY<vG2f6a0!wCJJHkOa1w=)jx zZS%cazn)KQq_4OOh*6z!s`nMp#u+@8++0-xOWnbbxS6K@*h4=mAmb9zUq5AQJH0kL zc*mweYddv2cZdD<T3V1C*fBmg_*q*AjCcmJ9vb42P3^kTNqXJw!*z0^Lw5HwsTDI6 z>PqeD1mh#V{hITab=)AeI%^CU`6T7w!dTO{ADLSJ8r}Q@qLX<@Vth(Z5UJfal{xC1 zYllGa<QWtxLDtMZI+b!e2#?4w+U?s};Gc4=v6(#Fu&JhZ(chb*Os%!6)-~fB8(iYL z_9~&n$xtlRaZ<Nb8p)vk<}|4tYkJl{Cx7;SyBW-Vz1+O^TSY#swBogfM?0ZRy+Emq z@V!Kgjyma)(pLQ1$p2U{G?I|hK_lGP1AenR4*6&+sCWVr`onZm3Hj1N{$h`DGHhrC z`!)SSQ9r~JI7I&f8g<_CQ`(DjdfOjf#e1ct@4%@X8x4<XG2gATeOda~$?i9shg8cs znY#HMsqnFbO-u}D9s($->2;!|&fi?!+n<TFRCm5N(m=eBb}rn<Yj|S00GnxxiM*7M z6?h+4Le|8co)bi$OakqaflyR0*)`}%L#juA+15L|LR<MvBLBx|7wGT!8Dg|hmGA6O ztaa$e*N^(*ZMU%;pq1#|_pR-K2>lnQ+S1c1>R|syh<Gkm$!wkTbNA@3_}<S%0QH2C z_k#@SSOT1Eby3B;vizUaxqjm1gmPB*jIN9!>DNDHn|X;CSqXcHhba}8HzS`=HoAf} z=a#%E5S;`6q!kUWv$gx7F(LDt!uMOaP@XT;jTt-A2Ky<x2EW#P#K9Hkinj1>$N~6f zwy0n2RO<a^toux8bC@TpTu}ED2-kOltziKogFD!6(2`&E)HyI)6%JoG5*S;u%Mwt1 zX&o(F1g;soK0D^x`+t*$*5Zp1U>3EF`Ij}&g|>>e6ZQ#Z8FMdNAGoc?-4Ds;M<RN* zX|W^@zsp1i?y@(x)x0Yh%QQwXS!Hd{+B#owYA?*hje40P-D}WxX4ffU6Y`EMJ-&1! zE1P5vUwX{nlXTp)avzSDj6AjghM{mo&<>mN{it^LWm>KO|NkUOFal#G`(2h7YZ?3% z5*nZ^C;jymHM>}d)60b|-#5hfSo@9?KXuxS0VXn#!v2iBs$;hzyw?a1>;{vY$JQg} zh4z*)WnW3|^p*;qFzz98bDx-x|Bo>&!SlMWikDBLi+w#A%VCLsUF=MXg#O14iQfF5 j2y~{OueXQZ&toa44-!7rf2;l<xK&wRU9LvPB=r9P_<)_e literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/background_menuitem.gif b/simplepie/demo/for_the_demo/background_menuitem.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa765d670e739793c2ec69e16e6be33618f5425f GIT binary patch literal 533 zcmV+w0_y!oNk%w1VJrb00K@<Q|NsB~{{H>_{rvp=`}_O)`uh3#`S|$w_xJbq_V)Gl z_4M@g^Yioa^78TV@$m5Q@9*#K?(XgF?d<IA>+9?4>gws~>FDU_=jZ3<=H}()<>ch# z<KyGv;^F|AGXMYpA^8LV2LS&7EC2ui04xC<000I5ARvxpX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{vSuh^`1%k6r<;IMd1E}PHjw0g}J2j1{^drn`* z?{I;B&llAHfHQb_eS8Clh=>G>j0Ay?kSK!zdx?sTj0KvTng*Vqk)eT;0hWlIou8@) ztgQ&Iun3~Fb9sG@sI9EAunE4u2@1l)!nDR{c$S-=vA@K^3(?XG4As^R*bT?qV|S(l zss_Hq*4NqC4(aL-?ClTS@Lq$Mx(CGB>+b9j{QVLC03`^FN03V&RI#S1O9wEZz=skh zNSsKaV#R_OwIuoktem@u6DL?4S)ruK3Kmk5s?5l;%0^GX&h?vkQl-iZICJ8}z_TZY zmO!Dr6z9uYyN4!o`t+Hhsnez!qDl=)l?ft_MXRxcX!EJmuTeLM9XpnT*{W!fT=g^z z+f0cno02VSwys^X9rEf;%Qr^>Egk|39!$8f;lqd%D_+dFvE#>(BTJr4xw7TUm@{kM X%(=7Y&!9t#9!<Km>C>o9hX4ROX5}q3 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/background_menuitem_off.gif b/simplepie/demo/for_the_demo/background_menuitem_off.gif new file mode 100644 index 0000000000000000000000000000000000000000..236cf406dc2528b538ed078628f9f95e3240f9fe GIT binary patch literal 533 zcmV+w0_y!oNk%w1VJrb00K@<Q|NsB~{{H>_{rvp=`}_O)`uh3#`S|$w_xJbq_V)Gl z_4M@g^Yioa^78TV@$m5Q@9*#K?(XgF?d<IA>+9?4>gws~>FDU_=jZ3<=H}()<>ch# z<KyGv;^H$iGXMYpA^8LV2LS&7EC2ui04xC<000I5ARvxpX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{vSuh^`1%k6r<;IMd1E}PHjw0g}J2j1{^drn`* z?{I;B&llAHfHQb_eS8Clh=>G>j0Ay?kSK!zdx?sTj0KvTng*Vqk)eT;0hWlIou8@) ztgQ&Iun3~Fb9sG@sI9EAunE4u2@1l)!nDR{c$S-=vA@K^3(?XG4As^R*bT?qV|S(l zss_Hq*4NqC4(aL-?ClTS@Lq$Mx(CGB>+b9j{QVLC03`^FN03V&RI#S1O9wEZz=skh zNSsKaV#R_OwIuoktem@u6DL?4S)ruK3Kmk5s?5l;%0^GX&h?vkQl-iZICJ8}z_TZY zmO!Dr6z9uYyN4!o`t+Hhsnez!qDl=)l?ft_MXRxcX!EJmuTeLM9XpnT*{W!fT=g^z z+f0cno02VSwys^X9rEf;%Qr^>Egk|39!$8f;lqd%D_+dFvE#>(BTJr4xw7TUm@{kM X%(=7Y&!9t#9!<Km>C>o9hX4RO5uq&s literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/background_menuitem_shadow.gif b/simplepie/demo/for_the_demo/background_menuitem_shadow.gif new file mode 100644 index 0000000000000000000000000000000000000000..95cfb820d47f717cc9ddd31d626d497e23f1a38a GIT binary patch literal 250 zcmV<W00sX?Nk%w1VG00v0J8u9_4W1c?(XgF?d<IA>+9?4>gws~>FDU_=jZ3<=H}() z<>ch#;^N}q;Naii-`(BaA^8LV2LS&7EC2ui015zj000E1@U2H>RW3WMn{UYnG9*Hl z=drAdx*AEGz;S`xh>aV3?-RhFFgPe02Y`SwkX$;ON+^`MoJyZntTW4{cCB5nc&v?v zuir9wYfih{V>Eobj-T)IX<1zFtM_|ye1C6bcy@V*b##Pqeua99jf0SEiI<3(i-D4r zn2es9laZK@j-!^Mp{9nVsIFn0u&1G*w6~PFq^i1|bF#d-!n>@3#)r1UzG4voJBQbb A?f?J) literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/alternate.png b/simplepie/demo/for_the_demo/favicons/alternate.png new file mode 100644 index 0000000000000000000000000000000000000000..063fb280549db7a68a47cce157d680ed7af1a8a2 GIT binary patch literal 28621 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/blinklist.png b/simplepie/demo/for_the_demo/favicons/blinklist.png new file mode 100644 index 0000000000000000000000000000000000000000..53200b3c62c7a00e21fe30af69961eed389ff41f GIT binary patch literal 4377 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 Tm7TM^00000NkvXXu0mjfB^P<7 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/blogmarks.png b/simplepie/demo/for_the_demo/favicons/blogmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..c5372614a4a623d418be15ececf2768a87f70f29 GIT binary patch literal 3823 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/delicious.png b/simplepie/demo/for_the_demo/favicons/delicious.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6021d26e2d699ace681e80b4dff96eee0a5830 GIT binary patch literal 3739 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 FV1i(EKivQT literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/digg.png b/simplepie/demo/for_the_demo/favicons/digg.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa96770e80ac18446c0254f37af3d75740cc415 GIT binary patch literal 4004 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 KMNUMnLSTY_%g(I; literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/magnolia.png b/simplepie/demo/for_the_demo/favicons/magnolia.png new file mode 100644 index 0000000000000000000000000000000000000000..da519f5ab92d84c56d4e55f0c74f17d828391960 GIT binary patch literal 4574 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 IM6N<$f?ZhTO8@`> literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/myweb2.png b/simplepie/demo/for_the_demo/favicons/myweb2.png new file mode 100644 index 0000000000000000000000000000000000000000..2a12968d5ea10ae7b39e47855deb2040e35a5881 GIT binary patch literal 4010 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 QS^xk507*qoM6N<$g7XK!pa1{> literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/newsvine.png b/simplepie/demo/for_the_demo/favicons/newsvine.png new file mode 100644 index 0000000000000000000000000000000000000000..5cdbb31c69adf4c0a52bcb93193c7a1f9566c76c GIT binary patch literal 3804 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 S>-qWs0000<MNUMnLSTYECtpnf literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/reddit.png b/simplepie/demo/for_the_demo/favicons/reddit.png new file mode 100644 index 0000000000000000000000000000000000000000..65c38867cd74b61c1720017d13c95264b75d3500 GIT binary patch literal 4239 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/segnalo.png b/simplepie/demo/for_the_demo/favicons/segnalo.png new file mode 100644 index 0000000000000000000000000000000000000000..748149b3713b90ee4c3e8e8e85f73d743d0eec38 GIT binary patch literal 4116 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 Skr1f>0000<MNUMnLSTX@jQ1u0 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/simpy.png b/simplepie/demo/for_the_demo/favicons/simpy.png new file mode 100644 index 0000000000000000000000000000000000000000..30b23c1a558369dd1feeaad81c2dca58b2af6bcf GIT binary patch literal 4256 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 CDMdU0 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/spurl.png b/simplepie/demo/for_the_demo/favicons/spurl.png new file mode 100644 index 0000000000000000000000000000000000000000..f5be3963dc0f2ca78e875cfccc5d021af76ba8d4 GIT binary patch literal 3970 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/technorati.png b/simplepie/demo/for_the_demo/favicons/technorati.png new file mode 100644 index 0000000000000000000000000000000000000000..0f19e824e614e7d56638174c33690d77606df22c GIT binary patch literal 4087 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/favicons/wists.png b/simplepie/demo/for_the_demo/favicons/wists.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2d294d1ec6198f50c3a37253cc7252a2d4b3a4 GIT binary patch literal 3974 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/feed.png b/simplepie/demo/for_the_demo/feed.png new file mode 100644 index 0000000000000000000000000000000000000000..e23c50c85b2fc311da507ea1a36b05c859477153 GIT binary patch literal 715 zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt007q5 z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!T}ebiRCwBq zlg(=rK^VrL*-cstQMY1@M6@fdv=u*E$e|!;3tqfvi+B(b+rOaZFQ_7(wKs1q^dN}P z6a;V0NrX~tkXQ>+60z1wux?1B>3(E=W@nR>oP6QkosV~Z^E|V&0*rblG7hKyj7<|R zpB~c<)A3vFRu=s_()x^_5#I9fB+Bb^NQ^=o902q=7S!4nA9z>D|LDWt0tlH9&YLs8 z#jznnPdxz&cY(cirJ#}Zwze*Sn1Hh);QbKANWE4yq65Rg<~`uZQ=r>ml?9ZRfL|HF zw%TA+@fV0t?EaQ!YM$2tffqnI4@9{*KFS;i&eO_B0Z2Y11S<E#-18x#bm(aa0KqN} zCyHs{^AxZ>&%ULAgFM@jEGG>GaYC5e0Jxn25xX4php5d2R%e0NXMy~41aX|Iu4V)2 zsD%J7aa;m+-|uio;=Xh6!~@{m3~+M|xV8x72wI*}kZ!^+K2jEJHDtRwG@BGuLumyb zTq&n!lic+VK|k4Fd921#gm;;$HUMZ6paXxx3$jMZ3;ZIl#<&yDpp(9@^Dy6W=Soqn zx-_k78w#Y4CV-a-x3lW-UXH1%IHmVb0v~2ozjwR|2+qKltp?x<CH4?9LI2y7{%KxS z_T2)$WK{d8*#yY7S|Fv&moJoG89O;uw6Uc6(n>kBAmhRf%I^u9V)cH!U>vs1-eg7H z^~7Zbka36$PtrooQe!67#W>#Iht0QNVdZm037{z~8ZjHE6IFC{@xDgT%IJZVch1r9 xZQ~TIqV&z5Nj^h}`kntTq@Q$Zp_KV2zyNZ!0q^m>#MuA<002ovPDHLkV1i)rMIQhF literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/logo_simplepie_demo.png b/simplepie/demo/for_the_demo/logo_simplepie_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..eda2d868b54949e2f4f7c12d21f0ae1f9052f0c8 GIT binary patch literal 3047 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/lucida-grande-bold.swf b/simplepie/demo/for_the_demo/lucida-grande-bold.swf new file mode 100644 index 0000000000000000000000000000000000000000..0a41e15eb87253083c1233fbd9e4aff27d438082 GIT binary patch literal 21159 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	JLhMM>=Kb?J~S+n_*SrvEA{}eAOAF^Bv~YSUSuZ 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 K$o~KoWRaGA5MBiU literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/mediaplayer.swf b/simplepie/demo/for_the_demo/mediaplayer.swf new file mode 100644 index 0000000000000000000000000000000000000000..bf78fd919a3587c75fd5b2df7ef463a22636aa62 GIT binary patch literal 32008 zcmV(=K-s@TS5pWew*dfnoaDV}bev0e7*@TZKcE2+009CdK@tQB?j*P`AVC5INf0F1 zjR)ZIy?HYuP6KEF{n+Tn>uzuvjXX25<wx7{$ksxcGaAK~VkuheM3N&PNr@ckD9YH* zQR0zutRy~K>>Nw>4<&K5c&yPdb(h+{?`xnzzR~fac!=))>Z`hSYrA#tt$S~+issJ= z@k5^zol$Y4UC4i9(U<aHV}tyeg=cZC^_={S$fpMnrn2)7vrD<kiTTpXiT88mQm*(o zFTeA}r4x&}+(PBVE%`Z_uT*ozTv@zqJrw~k&n}1t@nES?n#&f1EGjZ{@8{;L!i69Z zf^Z-_j|xxp!e=Di(edS|=ut^6GO0oEKQB6x>9+I2XN*ehc7Q;+*hb~xGft)Vi;&k6 zM!Y^4@R=Y;2f`qkOkYY6xJ<X8-k;;%zl6O%w?Xf(7P3!s<;scCxk|O1ov%*evmAlH z-2kATeJ*majuBue!Utu(R9wt2iTOf)RXli<ujJ<nIZ-HO7slwtYPnP`RiCcr!iMm1 zexbT7W~vf%v7E~<Emy@_F;|(-%It+~c_}BMSIebBMO4dcIl)hJ*|J#3R{$X{#7_hc z>XEQl%elq;6Ok)sB}VU4#rLvBSyfqN7Yq)Ic}Dma{3sP6-`lGT*{ZIu043(D`A7Nc zQ&GuP*H-V1-PipvW-_Uy`}y2sF<LHXpX#K0rG;EURI1r>6${VI<f>EU((0{3cB%3v zP37S@zU~dY{z41P)!1PXtu9r?Me#f?;t{VQEx)~FJetwZGIJ7By@bd}Bs2>0b>npR zhY=Cs%uQ+e5Uqh#3O}3E&yyk<fd<q@{1||XdW~Q3pqfNp{87ZluElG`qAlr+oxFvU zx0vL&B|hT0#A!nI#3=M>T*#zYH&zgrwaSMHHC_r<gNVoItwObJIP)SZe(I&&C++yz zF#(19?ZVzxoo8$Mc|s(k5=67ppPgK>EPC82+NrZ_N!tasrc;2yRpCOpV?S<5-&q2P z+iOB}aOg5PxFx!D7U*CPUTl-2(d{7AlYZVP5|LyKy2qYfG|by)GS5>oH+CNYz|<Yn z-B7_!4P__x59Aq>;M~l;)7=@G2fJt<#PZ@UBf8t*eo=%?)Cd>dQ)}Y(Y3O|fz2UI< z*MeHRn{ZHIlQe=MYiREb_o$Uy;U`N4`i4sN&&Vm5=#~wRCun-@8=-Ym3zp0oO~%8a z?Vq6uE%U@IXz_07|G4VX-I#X(8tqX(N5g0Wel{884-BgvZk~6zv$(^}*Ueuj3jeb8 zA9etgXa6$#@lCN83P7$nUno`9$~oS9Xdk(geUz=tm-DMtwZ9a2AE_|GxAwb2wz4d8 zPpY|cQC5DFe@qnR_hNQFCnT(VAv<SpKXPLl%NFDgH~$cRPgHX&qMTbPJ<8$Fy!^P4 zt!5Elkt^g@a>Z&zJXtB=HU`yJL?KsPf^87sRn}nt5!KRU>2a<+maXJOxw^6{5J9N* z-FuT_W%Z2Q_X<ztcg5_#@}rtB6)PgUwvaE$b`~FsHQW~`b(3WmASwU_{_;!3QaSg| zvcywDoRsh-8s$oLY&l<85JkBMrn4&&g-S)NX3G`X&C@e8Q}hcH#OQ41o=T8AI`po1 zcV_Aqr{yd2%MvfBdtPF)R4PM{=V1R8tECEV#G<&il9i*GUjep4c7x2Gd6X+la24#8 zp}|4%V69vb`Qk$ENoEl{LR^zvSc$T!Z|p+;jqR6QMt)u=$(fO_${ed}a-1vpMsf@i zFNw;k!(-48>PLsk5cvh!#nt6fnb-qSdAulA<(yo~FN*h9mqd9^qFs3O2J;NDEwy-t zZb^nk;;@Lx<tXCsKdOkR9B%Q0NQ7gF$ON^!0SQ<F_F74KVb_(L*H)b#G3iM3;$9L8 zHsV$-bG8c~wf5x35tBqPX2WlcM;-WaEZ+Tm3$h}n(W#M)#iKN*HLZ<$9?|~jVezZj zc`exFR<!}k&$cvl$bZF~jNJ26_)X+7n7w0~srXjTxpl*wot(3C!<=25vumB4ys5Pl zcjx6ryfpW|I3A;3+2-^LLG5<Aq?4LUO48WGlNOiMf?H%Xp2T!uNq+eyvIDfGA;9gl z*QaS;lE7kb!B4qE>Dq52u>W2>?=xw*!I>x6a^=L>$-Dr3?!wRAxb1Jj@!E~mN-S1{ zwcjfoBnLM!Df3>Cv#i?!{by2Wrj0QG-z^LkZ53{!s&N3B!Gza?xpoSg$2-#&A0v4T z;2I-(U+*+XIBQa8u(}8tmp$=BhN{`?ED*Jn`U6WTFrH~Wo(;_PHdy0%RD{<pp*K)g z#RBg`7Wltp7P!%Zait~<<n$WT;jfYX8|V4D--6e~joYuexPg$j1N!X&!wjCOjmm*q zDEK+UgBE9qi>M(l60keP6EGx);*l$~m=2pUJfg<%Fb><%M8rJHN{$&omHCQj29YeD z0E8oPU+u@Sz=<@?M`Gk~W({Hkb2#k}^+GKt;afg6ra4W1uFI~Tn#pj^l#nbvG3Q+H zB<46h4TJo<Jejw>ewAnHtg^^ep2aFZ^*U9atEWl>zaPd*Kb?1;_9uk(GyqT5{LzAB zjG?oTlfDgY`0<FrcN^0V_`QcD2b#>S!bU__<}0!@?W6~%a1hw}n!xOpW|!D+TJ9?` zP@}{^%@P;z^CA-8J)(QPOqX!LS1hnYoOdWawE=iu@xeS2%4L(5RFcs+mb;urav7V# z@so4!@;Bs6F>9I1U779<(w^b<TJI+~160_epCQ#Cv61t1nD&gQcNKBGHVtwyD0i25 zcS$K>Q4^IB++9lW${VFu34cK%?+NevI3)j`WE)P7TN{)O=m2LO-5@K|#w#q79~QqZ ze2XFqLcZKQBJP6t2}7G@_eZUf9K(_PR`Wgy@-B~<?8zIxQajU`T3K)UvL29G+qe-? z;wcnbw@?`&AIE7V<IyQZ9@H!^xs_YLAcfYbNDhb?uu+Np!V}RNp*4ToY&*mi$t3y5 z$i-lxtM|La^A1e1SdW-yJ-DtNS{H)rW~)H-5>7Xo$q;juB@;M?Ss_`Bc*4g-sXTY4 zwO%0Mmc};?-4@(9KxCdV-k{R%PS@TnJ86%L%dUc6`up~1+il}LTz1V>iE%;b##@uf z?toaJ19thP1A0A)T_Af$jdv_K-nEeLGRjauev5CaUgd1}OtylQgSX*GL{(olsgdB^ zY3>mzEkW*8p_HW06?=@T(s&fu<7kjQzGfGo`5dSD)F*<Ix=A;ZyY`3GBtEE@>g;Aw z*yrzR3l}eg9sW;bH4VtZ!Ip!+2K29f{R=nN7Wg%!;qj|+$aD^Vb$dI#Det!YJ0Snw zl7E-w-?aSOFaHMQ-v#+MBmeezQ^}MBF_wA06H0FPX1(3s+unWe9q(OlulKPewAo7y za~+M|R2`bHW~2FfPiwvw5Z7z17X*yvLS33KeI`R%l9#PN)eL~1{cf~UxAMye!_t4T zrmK>x-c%YV`TJge1>Y%km)1tD$QPuE0>u()j|Nv(b4#eic$8nrl?I<2hu`l*B4{{J zQ!|K<p!lFir2?TR_=TD)(2itRK@XD!^^^ovSuV{#e4KrhJ5Cxm_wC|*MX8ohKWFKq z=HWA4S}-~@t)W7dPI+<u^bJta<SXfHTCM_6|5Sz20<Bf^g^HM|LLc7CF6HONy-a%c z_JfJ^jhpY@oMGJ?bnuWsFpsi@wOnRV+{?<U%B8j9f>_E`XJvPNx>S@e7G<xBDnC|a zttGCW)l{s^n_teBN2}tvn7A?dj!4gn(c3e#Vr+C)!1u@G-<15j2j4ejy8ONgfAaUJ z{CnrR{Dx=vmXGr9?b$K;C&ur|$D6VQ{y~<T@OJ}X-4zqlvtnjcX8G97yR%|e{+PWp zD>6_`I&*(kOv==IGWG7Xgg7xKK}`U3`FdhnzIuC7CXdOa>k{FQjmnfe^3`3aMJA2{ zmiHmc=-3UYN4_72MvRWnLNjlQshhL1qW5NI-(WS^*FAh4q6R~*Koa&SsKH{O0lTP_ zTX1rQzmoBof4B4kTTuA<nNK&>DQG87IW5RIhh&f~LfM)_bPLUVaMt2HxB8y9cw3z3 zHs5o**Wo;O_@1}=o;$rx=ef)Gyv^I@Ja_w^d%Pa!dAqmWdEViB_UGRzpShcQc{4sD zqM)7soN$=&T_frc#b#t9#30JjyDibJkJ#CZ%(+;v;xv=?8XZu~>z~FAHZq0q<bL@R zFL57NEX6*;D|J|S3)!mZhfO%{k;t%r7%FOv0*60906p)(G|dss_+p(09raMRc)pb| zpbumbqTV6I#hK8=)*r#oqs&c1?ljEA#_s1ksIZTtv?@L}O`1Y12|FhgY~tqxKTD>w zRd~l0#}ZeCu`LPAoS<syCqYlytSl_ycrxA?Z%RU%cVdKCR(m-$c!MbZ{JzAaMGIah zvAL(FeOXUq)+_R%Ii*j~;&#XHWk$QL6_@H69O8JIv&(Lt5YKn34A}O7_VU>Do#y8~ zR1KzKHv4UgD@P#}5O3CqV-r2npaMhJfSNo{&789|bCO3y1I(N$oH-4411{Jzr@=et z%7z)?drLE33J?)rI~u(6(|{nUQjAmx>Ek#I61(qt33CqH*zT58$*tkZsqkbkJUQVe zvs96K-W{qxX3VWA6LY6bto|tz^G_Kf)D4m#Kys%{#(w=-p^@!$5V=DuLA~q_yiC9{ zNp4lkR;FK=Hkyw80?&cv9EJJToT8;-Ve<l%ElwUQ%lNoOHbUlE1IYnqo;ApM_RoO! zo$)Ru|4>dEZz%ak@O3%)$MAK9zJ}@RYVuFu>ss<Z!q-UhYw$HnU)PiW3BJaXe+pkW zl3$0fn<xr<x9Dk{zCbi+{vV*Xz1#GDBKZyYx`Wf!yK5-+r1^Qz{7jpl8EV`VeZ586 z!f9geXXtAdsvE)FZ`1MmeVkw3JM{G~eSM6k&wKRsar*j%{M<ohKbcIz*SFBu1N!<D zePu}wnWL}k^fgak3-pysHp15;eJ#<~GJWM`E&HgJ_mfTV^-!h^P)dPPR_LpU3&|@b zo8fDfzCOUO<Yj@9(q>Nn%Ub@)VSlQV|J(-h4>I8=Y$p6=D`1ur&;EVnP94Hekc&4W z4Y2R4vy#iaUe0A7YAHc9u_W+*DPI&V;)>?buNoe`v`R3g*Z?QNx$FWwoFwLdu}~_( zsXS*{$Q80r`L`n}kdQ#)$B^jDE|o;z0vtTUr|4TQt(7a{SRefoeJlCmnk>!V6>($q zV>4nVTU{$d_FLsVe9bP)Lh$3A+=3J{Flmjx@0E)1HM53aBrl;%Gb3)~=5s4^QZ7uF z9?_4?e6<AMGr83&rHrmEtyQYx&RXHA{3zyRTP2j$a=svcmFJhmt=wFBEnAjvvqk)N z1tysaSs*hM0~i1d;6g1>BUBH#yunhyL@g;mS%F#%e1l=&r2s%1bmEAJz!aS3b3iYs z>hc60Z%0VGgY?&Hyb9ZMlTt3FwDQhtRO+~9-m+y{OP%>zRlY4Y8wtdfG~7QbER8A@ zXjA$nET9+_EMRk-T|zfbZON2fvJ=sOKC*pU=QhfDU@P?dal#lCMy(DCxX+Cv6CJtA z-QK}=3Eb1M`RuBQ7w5|2Y6Q6_M=9+Q|Gq0i39)#*8N2;`VVKqwG<~b7S20eQF(s&S ziN~q+%5?a-5oj2c`dfk;W@omh1ac7tVOZ+=AR_@EU#AogjIGtz9Zlwt<EnqZ`VFUl zS+^UN{R_Q1C5Rh@eFyup7g@<Jb=I~G*Gl*FI5c*ju+jBrfzO_4RnK-3tQ(JrWTm<) zyvlM_JdZh&+Ky1Ze`g32M^)g-emu$iTFRb{w<qyHtDDU0u*|Muds4TBoNP!uy+j1( z!FTWw0juS&wwsrs&Tvh!j-fdde8{_d+_DO+wM%zSkE6(m-TOF-#DYc<Yx~?=k?=~? z;*F>|)<IS~Uf;M9PIn8FMV)M5mc8S?8n8VZv^;LAnh;^cZ|Tcu>w``2#~NPXPJvnX zjibDUZSB_>zAX%7#PG(3koT_#dB5GTx&}&1s1uV=f199l6GPGKX>Y<C2*)acSPkg* zenGf$Fjcxu8GHEPcdUcbMjey=dL0YfPwF!wUgx8oU#cgQ>J9r2EO$Gqd-3F3MO zhcnOj!P}GGDettDAkKQ{yz|}#@1l3f8}cqo;h|aO`#H!r>|HTS{4(|W5V7o+h#$R3 z4EhCP$<GrLevYa;ON{gx;+anqKYWV#;j0GjHG(@ra7P`u*9q<z!M#CnZxY;F1b3X^ z-X?*yN7TnsHyD<BLbKG1h|smx(*nrqVqHfH#xV0`>vyLB#<TO$8+D&1nBu;31&h13 z&J*<E0a;Wot>qUiyGU*7iAI=9xzbP}TNUyzUtL?sQ9?;p4Id_H9^5tXqlW%pYx`~U zSTM1zaWZfpxN^y?lL2tPR16Uw{365Z+8kPW;)gy^SePGLpo0Zg@vr0-^4X#4^4iK= zF)R6HvR%zqCA2wY<<VTV3dXrZ^llk!Z)G#hK@9@|rxn?iWa4YiV$haVo#c>^g6And zGhc$SBn6LEft@V7^#q>Lu!xgiSrXN1!8sp-!;)g|Np&VaSAZ$-<}&BcHc-*;uvGMt z%r&ED2lGTRrF##DkPc68NavZo4_DTIFDvUCL$vT{3g<O>P0n-5Yj&QEmcEg-^sUab z(b6}vmcHG2?(nuc&z)YE(t>XzMy}<sXa+6#j-<m|bpvme!WK1ygGW^8Phz^HjM5M# zLE(RI@UdWQ^@$waPTX)J4G#1uJ2|*4RTJ{%O%gya*}M^V{zGxntzlxkDIKP{Q#F35 zjN~F@Bo>cbCOi9u;`{YGWN4^iyU~PoAWn?J9z^>xnYem;tX!HEu;)Xc()I&`f>vz* zDn@|zA)o;UwBH6~c<%u$@?%`&Ks`kcVv$E&<j@4KT`Y1~7EyY9$Th{ej@8I@9CIDv zTqiKsRnFC}bG4HPkd#$)(pHt!rIWf4)^A0hv!&uBa?#Awo<z{I5#Q)h$x~(wlRSo} zahz<U<Nuk_I%U0O9L~t3v*}RKM;Y{ZriOAjN-BNOi_6dR%B&a{3gLBrg6;cygI0Gm z`)CXfSiKvP)gG2{tRU%KaE9fAZ}9eVu8Yb98FO9q<ywhQ50eeugNScwCD?!{<}R%Z z{*j<Hmatld<KdC8!{hfWVx3Zfv21k4(l!=;ES!Ohhl4r_hQYouZ%n_|K)z6}b{-Gf z9(T|J7@$p9V(LS-_x@=ViJPX7X2C%IDOJ!;jhiHC3HPj_Uen%fM1Q<?naZ{(TfNJ@ zOpgy68?kp#hQ7jQWZa_RpkkmyqYas08tlT|^r}^9iYq-VQ@N%serq+EL=fnGi+Qg~ zw|Li7=~Mi65_^^hcLY#OkZ{pvn?j|$Q8W$uVL?QkCRNjf?ho&pOjY#lip=@c$=PP* z9P;JNI5|74oR@t$2b`Ql2HP>`Rhg=Y;1$YrJ+02Mwto%AId!!T-act~`!UViFX2#K zYds@ir(LSgT*x?Cy=?tM4}d)T=aCEbn+looufp9+#(py#xhyGJ|MggM6bme7xtuGA zYysWvs>~@@)>c+P<Gg9^y^yag=N5#^u9F|!f><dn<QMbuhn7%er7KEoDMCvOd;V$+ zIdS`caXId{8~$_SxX-=<$DL9fakI9+XabISJmK)HEhBm}Yhq8U)*vt3obd6&>^g?q zQ9BZzpN<E4;efqK5;yFm1kk~p7H-(TA0ryo!K@E;f?Z=&*H{NH9P{zQQEpf#ZYB?z zA?%_ZtxIrslMQV*i31kz5|eD8db=GV9A*eREN(jH?X>C%<)#&nf&?7-+~0}XZ215K z>azhE)_5-#`3GF2zy2bhjs|)54T_9&k^N3T?AQG;Ks;R3=IlS?*Ci|NEb0z+hWVBb zizA`IJ!o+)G4Fscj~+vpYx&|!`SJacjmMODqMsDLc|}<co7v^@?85ys?pd?zA!Bw_ zzCD(<YuL`*Tud@8rerN{F2<buaa=wpEN(8wh@3!f?w7>Itr~PjXwWxPKU)WclMaNF zJ_y5gKsaUb@G;5HS`ctOPvOd!z#?C#MzTMfeG<`0E7v>Vo$me6b@+?ffgD=&nv5X_ zt2!;nyqyU!Z*2MB=$%F8O|ef~Ear{ar_(Z3O*dwr&T01P-~K1$)i=pLo!9Ksvco<t z*Tp_r{^&1T|6vk<Jo`tHGj+31R{2+9pXMcRQkCola~b*KB75f(tB_xid4Ve_qXxAw zx3*&W%5TJXNn{>^pLz(tW%Fbf?^PmG>ze$GkL}48i=`@+*c>nB<L?4`%W9VW=l^2z zNe2@Dx$#NWk3ciIc}=A29;EoJ-*iuPyKFv-$m6y&aYT~ON;04I<rry2Y%b(+%(t&L zbd&RPQv0FPz8b4T8L9SUE*o#Kbs_}k2cv{TAcNe8!<3YS>&{nGQgR?1+-ka*o!EuV z{sordAymyCUv5-*nN8KWoGD}FzG;n<*IiSmV&~n9m3A_3(x0X@qf?1^`vUxc(pvRf zZ=oTR5u1Bb+SUQ90ipci0b+uPSwS`|#(-L#%{S)SG&^dxqrN^>EW~;cT>a@W9|Xlh z9A5{*2?xRnAB5pLAoNeT9cn>v*}ZFjra5}Qwx<<`G^0l_$Px_J(&sdKC&`MvVM=ZD zU;H{PgHvh6y}bSPSK0Va>y1Cp8~-qF{P|6W(6fTRy=?uHCII*B`=ev85Jt~}#G&*! zeqCjGZE;a<sf*cy+;HdD%4NB)Q$V0>aiO%5|1<=zgE&C6cTSts)jWj{(gA0v(wU4H z6oJO6wuzbLY&o~USTE(OlX7P-fZ`)79+e7fk~>(d<n*>Hf78ypZh$`>@J_<J`3R0B zO-#L^J|X`@?W<V{4S0t~xLM0mrBxw$gS9z)jYqN)05Um?YlVV*mCF^ODXWECH4v&u z@=jA4Dm(yS`JG1Cx#|ppm)}@}{BfU}$K|j(`Fosels|8oO6Aj-suzB%s^#xdtle&4 zz6dx<ZfCBL>&rp=`^vfbT>cTLjA%sPo}T1TO}XO2*mAZgS-5g;2|7@Y28IpP9GL6_ z&f!E5%B#>&6^zNa@CI`^-<e#O%Sq%#e136B#1>^Q{C5%MA{Dn?q~c^a38g&zY*b3! z7W9cS?xL`HaEP`PvN@2uIefclA*pyK^Ss@K0)<Jco_0gjC0WR2x94`?UdU9W6XAAE zGp_B-pRkBWgtUWg$&kEu8}hry39Z*1C>{c{ClqE+Etoxl;vq1%hr--m3+DDfaXW<4 zj`hMk?(}cs8-{t@^`%B2`77Bn3^Jwd)-HB2Ny;F|)Qb2j?Dudii}px;XqyxrKk%F_ zJaJC%U6gJ4UTllpHsRq1_+cMB{0Kknhll@$9|qvz=lP)<9)6i04#2}d<A;Or@Kt^| z1P}iQKOBaK|BD}vz{4N#!%=wnj}V-yDdPBwA43^ixJPjj?>Hv^JHOZU2~7T~KY0+7 zf5G)aKZ%Jy;wGNL#J}w(p2oz_xQS;lamim5=>(?y$>%Wnl0W%8CinZ3FJLm7&w3XR zK>O8jAJY+a>G`<t`GoIz(D!_jrVz{$op##t>94M^;w<7_vMGo5Wgki_LFEjAf-nFY z)Hz>ur$VYb>&tWA_k6+ke3>aE&+s?^yI(t$#uY?!n1qlMNE_oO!od}*DOZVCGtn%5 zK?MT1rUL<dum7yrRAlvys_x@L$(6xwqc@k*Dhw*p^(GxYwh7$$*yK(=UiRbm?4=Jh zmkK}!@V^zZ04PVwk~>arev443`df(|05BJvAfp>^Q@vu{ZKp=paDaqSD?q}Ayz~yk zOJCQ#^!r#^Dbe1q%Vo!6S6{YzF#z)H?~0DPJ$9_}rE-2LU(6Ortu-gv=3JShFZ)7r zB4f<VRPFeY6wi^I{NG$w>U$%#SSd}%vgI<MYaGpyQ%RbtJSWs)qpb&O;$X^$#h*IM zIpw;e04CpEn+!E@8KevE+pB^p0<D`C<}`YhY#Gebs_i4}?I+1=#78DR`_e`E<cBKu z7N=2QzIb;q_={odK(SJfc-m-|RJ&eM4|z#Z6p)9T6i+b#`ODUH8~{B_MRvb}V2Uv2 zYe}bOO-Z4I<&a0R1POJ=K=7+lgjtMeK{853E>|T>q8yebAqoS<Rwxt(d{3|hHUs&M ze0Cq<J2Dj=#2cXsgea0TwZQr2uHaI%)(Tc(Q={|MvLzAi4hb5eWFt??Mzz<n0vKoR z_!KCTPs_?tZOgt5&CDX>ip1YBVwdBJU2X;b^cFL#Ti_wh4{h*ppC8)c;Zyw30T0Xk zuoWK4z~FwnyO2AP*L&h7c46W?Zka~g?QO&4NjGmdCSLI8?ZM<eH}7_fvE1P>mYs@I zJ7v<kLejQ<sRg((NP~XV>D?iDdurs}9+G#b2^9h(6$37>$KNI*s=aju=eCH`E=`;Y zOq?zvaVl(*IMG!IFI#su0HkNjk%3pBP6Wg#N`N+0>LgdJLs<b3M6ZZC;pq`;jX*_Y zC=~_Yu8hJZ5Q=n_QI|BOluSyg#I))j0e6ViJk}e~03mR+yLaPvgKCe@0*gx3V~8!P zi&zn*G;6Gu`U^n%emho+^!3Uq4#D-KkK}xa0sTt={fh(rI}{!?hv{D;qvAZrZA$0_ z$w`Ii363EVY-T+{OQ@az3Ew4~@QvDpFJ}|Jzh)D@{~BoBKXJ*=RwO_FEptPis78-C z=l5H}=-^+ezW`ClnRN;TLS}b|5y~EmP;Pe!<yLl9mRkylzQ4#Lvjg@cI28!9S2Ap& zQu-iUsC?fjVk=to#A!C{W)W*AbAu`vAhhN~6)oCueSa6Zz8Je(?q!rZIg(u5I0o;* zW;N*yBI76ZmY}{ZB(2*goc9=>TM`|Rx7Y7@FvhWvQI}89Hr-&0_zBoD-rb17=AJx> zC$<Tc^kddu!HjgDpH2QbCF$?ghrY;Pd;Kndy>GMkK<w9B%?fWd=W(l9sdKBj2h`MD zbCd!&&+f!#H?h&!AbeLIIaV5U8IZN{@Q%a#4;8Tvd2Y~EMaW%`>HCbV8-v`Njrc2g z^AX*3M4wZ9QvyOk=@qYI(ibS`dzn<qO1AP4PH-OPp7Qk;6UEgvDqmSHJ<fd~Zho+q zEr589i8=LT&RW#T2fn9+7d!x={OZ;vb72O_6Y6pcb;|{&>iZP<ng%;j+?zT>n>{z2 zLI{dmllLi^tX?MIlM*C`)DU&{M3yPs^b>elMp^dfe5p_>3qXQ?6`-f-XLhYxl30T> zfR5kX%cu&ar4shjLVhU^(GcNh>2VRo9eBvk<B^d3#XJOh_EqvlJtVU8t&^<9%G_GD zS}KwuGgOZJ1*tNaAAtUl(=b<^UzU8&YA#z9Ww4~lp?sxI3%S1cb+_ji1X>5lCa<U- zgy$->NKTDPuCNHUHo5EyUu>dJ_Uz-nH<y*D)I3rmn!JN9tdcuqliAt62^KT$lK3}} zDzVX052n_OJ>KkBCZ^JQFRXnbP|J+v{<Nu*tx&QJy}jGwNy2K2eVGvH9NW_NQ@iuj zkxpSCgx$g^ven7dX&a|*634C?vh9&LHYz(5;%C&w0VzHUgU=p){$!`_pzwe8g(4Zd zEb|}8C){}zBzMh_>!U<6Wg%(TvD>QSl{#Y23>n;{RDeI-5xpTD(WjbhW>l2D4VfW& zB_#U!x+r7txgHXGLy_2LAu$O|S0YjqjrDG=YDF|!YxMWP>yGJx8S*ccbu`te<DhkJ z@Je+Y;=8;|Ol_+U>aD}CJ7h;@K2*`U8#W%YqrM^2?`l<y(N7ZLRUd<@w{!<<(brVG z3e>?F%Ni~S_2jETJq1vkF=kM+<e0ZmcOo@xaR$U*LnJfAz0)9f$`00Xlt_3v1B~)d zp`ht?$0Uyr5&gXOnAaJ@m=<j@@4VUIE<lVR;axN-5ba`X%)2bVuEe}yuh+XOf9{rl z*W~XJ`8O(mUzguwG4F=_d6TfdC4Y{~zuOdZVnSxPlbnK|2V>rVd~w&C^zO;;w3qRw zV%}Ra!?gU{>GdWDM17GdEGw)T&E6N8y}yj?eX&mVKEPDJY(3Qhz@GiJ=)@*?`~aK~ zqbxfb9P^U_^BiXRQDb8(bpl6BY+9rZeOO2^9N)?sxRr&NTd@@wu=P4kv-OsAFh4Ky z^Rgeah1KP(Vdb=86soDRYpmwVqs0((NkuEPj6Ie*4@0ih;u)1m6*Hzjv#GSP;8G@5 z$beh+POfp4Hm9;pn3%&wURm+BD5#WuW^P91rj6XtWNop4r+AL-7F{&UTrizJ6iek5 zIahq_xcoU2!kLHKdueUpo692qMr$n=S=pAyK*tsZ9UIw}NA-c&N6RT|H3?Yn{8mI? z%;xY5ihwtp;BdtE5)V5;Hc7;4H)FoHOc>{sq~S`n(x!G+zI&B8)d?ON>vk=#(<<`9 zT<+S=+$=!ttO2zPKk4qHai^T-P@N6dez(KsMuEP1yOM{LT1jQyZB>x*tL<!Pd$g9P zMn!wquc*VS=#bk#{dVJV(Do(Ja$yJRi}tH+(0UzFO0@wq>I<s{@p~eCteqjA#QER7 zVa@|&1>G#H0N05B+4X8Un6{gJDE&oQOt$5oZJW*;{vKhP>uAPkqU;c+x&Dq&KKt5= zW?AT2>OVq1=tnn-w%k^1L{!*q6M>cSp$=51sy?c#KBlYwNmFpWdX$NZU)w0Fey^Tk zgW@|K9AVmw*G7MQJ@osuR`TvTvoWP3g<DHAgb?UqR5oH}T7shWiy!T@WM+}?Rv8YN zS>3D%-tUs04o<e)$QU1WEz}yLK0NdaaLJ_`0j}B3N0Lk%2B@SvUAnDxU`-O%AUlh$ zD-7hg74niHDphqen`Qli_Fkzm3zuwt`QAEK#yaCM7@Y9jmcg`cy?+Wd(9RNN1FPVE z5`?zjn8y0H7T@?DsoA;v(?mh6%5aN2Sp)q{fYP3FuO(WpS=B*<ZMT0%89+3TtyeZc zJhcg>qBr}Zggb<7IRh87)wi~e*IHYeUIZ4|{vb`U9I%gKW4<q9qkNXPIjC?*bO&FZ zqxrqt@_h}Nf>`_Csb`xci@!6LnO=SL<Gi28sgu;{P%5ff=kfD`Iu>)s`y#%)q+{j2 z``TN@CdvGeONf6<_`<H%u4p$$RD~;-me_eo*0><7=&KeJ=Y&zFrSA*zI$?lJ1%N<k zG))tN+~8%b=8B!q?q+&DtXq9mZ*E^fKK~l>&=@1f8}$)bYQc4D6t}7}va%6x3^=jR z2f&PN63i%o8FFUM4NKwG=YLa+4BXUBi#rRi%c}Vk!tU2DeUZy+bIva?G?D}R!aA@c zb;4dS>sAkR1I94cjoWC%Z`n8R1o(UEmIVj(-Ow!`Ex#|j=Yg+|3mexlUT+;Wx@ou7 z*mb&TGdif-S_f4^Na~2WRHqKgKF598`ukk~=UIR36Pr*!*&s+YVf*ZXHUteISxMxc z3p=O4ba0Gkj93B!9>JLvs*CV^6f7)r`s|ppvLW?^^}bYuAGh*F3VKBPo-u&(fa`rg zHCE=cg&e*>#nDu$A|5;y51x=dr%)<a<jeVos3y6QU&$3Kbc$%(mKx0(o(RvE3S!K6 zBr8i#k6#yfTn$&w;kQ0tC7l?02+C)p4g)0`rewih3j)AavvW7`M0z2hYbzC}bA=ql zG|=W=%7l~xBtSbXFGW22T`Ml+7W2g%L{2D@nJadqt6Q?vNYrb=!+bitrW0-JTDS*K zu!Civ(ziC2^`GRTN~~`6qt@st+uD_R@qkM#mLdMbk{puJ;sR<3?E~k<d{w;z1)a8u zo0nZz#y&*b-cs?FX|wX!d~@|;|DhdU*D}Cu*zPw#`+Je+t>8$LPzE;9*fhq2=P>mR z2r8*KcQ39E2Aa&7L{!*k!p$QY%G*+3UWo4sH;PN5x<%({OJ5;wv)$W*7^o0Ip?)l# zv|r6QJKr|FIjxexTQ5`rNLl-(e%kIws&+p48N>-Gcq=CF0K$*R@8pcVR-s*PMefeA zJ8(VTo>x*<_9<oMURznYTMIM48m-ms@YydrpYR2*LHJgkzTb+L5f%33&eXVl#OtG| z5CGdjv2xtRgMJW))W%G?I0%5!;OTCpL%w5t$v34P4@o-_lGcxDgPIGYn&@V9idB>r zPHy>mn(X5S1zb>t=TK*85NXWMqT0qRS4ur6XM$u;{-y}lLoNEGSRZ?*?js;Ec;~6J z>Zo>`2!CfIqc0NgQ0}1KC9eBIxS5AqYu3ElM)=KIjk$o0*~OLWb#K4N#gqcU1Wx!; z8Rw;By?QY{lkuUeBw;CKS!RZ6V*hR;IK}#nvo29H=HqY#zD4*7$ceklewLDGuPvr& z;|q)sx}8A|r#YdA6Ru)ti{GdLeWx2DHxta&OSxFuRKb3?>s-SssYfSWb>X-~_p0-B zEuFgE;i?4m7+FulY3pPHssbnMxBS@R(zXQ47K64<Z~_A3m~F+OWSh<%YF2vwvR+u( zk=H0Y>Mt8QEh_$jBT|KiIZ-AcX6yqtIl*E*x|o?ER<Rf0L$X1YY!##is{TsZMP5w{ zU%@EQQk<7jpqBjWxc=3z_C3~pn_EGyV>`yC4Zs?pdo}1@4Z2r@?%6cx&>{P`!mjd$ z{&iDVc|-rYsS&!Ne?i&>okle1X7Ve}s(+nd$_tt)qnbN9)zHIEqKE1Q(n3hfki+~p zp_L2YgjVX2g#krf)(xRwI#f0l)(K4^onSTu&^_q8<tx>ySdG-CO4{wgq6Xl}Fo4Q7 zLJ*$6!p~8D{u4Mt>vjN-^XBcUp=?&=HoY5A?<O$y4wIz2q!XRQ&wK16T2Ef1+E>Gm z%tAyR{b=Ulg;KdhZ5}BEO&i<^4Nk{B^cVNlp;coU?ZqFLBBh8)iBkN1j<e>$-C{nb zy5_d==TG{%1v^MKYC242wH`Dh3C;K#ueB*e_AR~;xYfE>SihXEwUHbYCViL#=jsI9 z0x)dV0f+dfIHR+hf2c0WYKVI+A1d$PL_FD|ZOLSB-wvCZGiuhF$rg{t*2#L?i4VU$ zE(fw%^BYNckT`!%1Pf9i{_Pw;T^3YqQ9PNk&f)ALv%Vq?x=4bL<24d-8wq#-RktK0 z4ZM5cXjwZ|igWbx<;t9+$DgCo9n81&)VObm3>-iGBR(6ytE2YRoXvVEqh~h!9#O0| zo(lP*%x=Y(?@V`V=Ey9yt709H)=hSpG~@@NkJ8>{COHo`YGF!%Lu9f$j@0_T87qt! zZ$c!7@Go}OVVyM<${_^=Tt@I?UuagRCW{r;%||&JTZjLQ#}qrKng9P$XsLF+!3k2f z<DrCd+*%5koxp!Ako76Og8aM-L*c#WlL=w?2E&SO7mAKZfzDT^4z2NCqjUJU)*7#3 z->7S9SL=#-VXInSwtl@CpgjA9=)JmwUf2LE<*el)GQ$cxdixHl9qIRNQa-NCbNPFv zM|o7?^0N~!POD}~BRo;eqhH9(N~u&`27Ews=&FPl3)#xD)-YesS68yDH^35ap`3lp zy4uBjp>SPx6X|)E$XM{Ugp#XNZ{$`%u`B^&fZN>7mDTD~jU?)AAqH%Aewkp4HT1W^ z9HN|Ck*znmQEf^p*^^J8qN)6oT*2J9%cv9Pa~h+$`G;aIx0Em5l86cbIg7D%;VV~M zz*N6(wzdKll%}ZE&Caox6>5tgJON#~txff*-Hke#)T{H$x%r2t>)|yva!@?LYr*(t zE(*E}IZjj_FFN6R!2ok;a8N8)tE=#R;n>MzV&-Xuw8X2~xqKmC&F3ltRK5_7*W6k_ zxJ{KyOXXbUP4)v?X~fsHT#AzeA_fdgqExAh2H;xaz_omjb}5cAc}p5L{L6um+URF| z*U;x~yG&HE?kaC1Z_g0nD9+JWQl??R<=GMC*lb7XFp;>n+LU+;aF4jb%1JXz#=M_r zjvEO#n-;wlk#*^M(A$FiM75nC7O~T|8t)4ZUx&%tW~^OW=QmoVZi}aksu;U%foKc9 z?T7&Fm<DyxPJdJbV%FLv+TJcZGA?G9P~-F%RQ}q{*|Y9jePqgsL(bz)H-f+II1%Up z%%I{qXqV{d+{&u>oyhZpU=h-$*k6rJAaw3N44S(iFV~GhOd7iwSWp_X3##gXmCzUp zMzgp$B6r!+_8`o1+hFBTAf^PsTcEUqY3q(<%5aE;BAIPx&Gxu?j|4`du@=~)mU&gY z?wlc)8~d}?i|f%EvxeSM48BI53I~VOxbLNLZ(xb2JF4f3WbcmCFDa0p@aYXyXgU^E ze1g(ROY_Vesu5#U55biVMxIfN@Dxfe2ZfpeDXk|ujVt>MUJ~`<#m`;);)@qAZrifU zR;-Z4h7PO;n6h6KHvF?Bvp4DrmL?H|j}rJYVLkg$)Rin`90MC;k2JfAy=kYea}#WN z(xQv`yOHdGEU@taSlyG_mSu_?e4f&^MokF=mc+vsu3?|M`8xcPk#_027??<x{N_$5 zC9N!pf9>bhZ9;Xq#)RCtE|J?AM&x!5*-m^B@5;0ee&w}?(BLTDrfvdb(e5;?pxUl* zyTjXXNa4XPzrqV8Pc6S60R-^M+^dR&T_Z`2!=HCb$vZ$SDa$C|uG|TC@jBF1?hRwp z1VvrLt|w>;?&^)WRq0I7k}bS*w~;XUGiV!nlZwO~h$M#Fo_zNEi4b6mcp`O+x_lg$ z;%&rX!jH+MhV9)6sXGLAlYZ0^?A<T5gQ5mV(p<G5|EfZ(p)Q&D6{tP%ymNKPQLRRf zn$&XC2MFg{>m>nW`$3)7H@?UTFI#`|0DyWn82|Q77~uGztZ%y#w9u(x%>vdpY_miD zT9$WKsX)dqH4I&hnTbq3B_E&Kp$g>ZX|bBEfW1YjP=H_wcF+P&U8~ApQ^>3vQx=S^ z4US<HUmLx$a)s4d`B0T9gpL%VAb}A*gVNB0)hq}%66DQdHCMicLe7IHD<wdZB|j<9 z7%Lk6OCnOqFMx4R8O6{FS~N|PsA}1|ShhKf6#-^FR)p_)JGM7_u`LuFD;H&E0)bOj zDi4(zPiPp8dx-Y3L~8;9CV_M{0nK`pEo@-A1J+ICQ>V?091|=zKm-bVenHVT(@|I0 zt*vAiAW+1D9W25LC*ku<LovEkEIeIVJyY>{r<s5h8_IWDX0)R4&8j$kTG(4Gl;pI4 z2@-NY3#^1(b^+GYkQ6qn*@CtTdYrAGQek0z6C@1#*Ee9f@P!)^!FXMllXA3}U&$(W z$b}rubR1GC_~#tMFc@GV3sz@y6?9nC!~Et7us^o9mH=DB8tJYGvqtjm#DSEgW3l9s z$-yhx%`_>ynUpQ0Ht4{i#n$H-SW9UbThuNRg*(cq2y$0#al98*v8f&E^rJ<Irbgf- z{bZ-o+jb$7y^VfF(K59LlpY%j3%6mgw(HkBHUn#W02c6E+Nf$0XGt@5A;IXig-C<R zdbxBR8M~5Q>r~QHS0z0gSF)QJhE8N*x~NkKgi$T`VgI$!uc%VHZrFc)mfl(SU!Sl4 z4y@mQZ9b&?d_5B^-m`IWr_FugZSL1??%zzC`@`DY|9Wlif4w&M2ix2q-exje+m9_D zu-fOmKCsSf?y-HF>9KubJ+@D;SbBYMGqARY!8)X0AKnbCLjhP(b#!dT^Vs_1dBkmD zCJ1WRI-q(s2g(>X{ueB7AJr+}$tirF5ff^5**jtZIi9vN@?DGRaXKmO5us&Hq?gz@ z(JHzZ`~HMgr&e!eGJfo3&Ou*mPHNoCKHTl6gN#7R^xdg+i+MPmZvK!j`C{dzcZQFd zU^VRHqj|L&xZ8%h11cSjn%w=)>0`6=daGi0tiS|QdA933=iNND$6OUK3uNQGz6Egp z&tuCv|L3t~owujBtmIQj%`W<=**Br$OPaP_3Zrf74auc2`gZB{c7#i>w<BB%?g&HS zJHln%?#r8P_vNs5Uw*xIUw*xIUk<kWN_e}6b-RZ*+wS48b`QT^yN6$|-NSaf`>e88 z@wEP$kN$C~5#0wPo7sa$!rDKg$=}Fk_TZ5)ayFv(^O4Q)86#o)`N-x-V@)FL<T~W* z{*ld*#(F4ytx61O9CUYonWB!mM)mOp?Z(Z{Zakv*;SqZWmgO&Sd8-usfJxO1)98Ag z+o&3yv9$ekBdu<hG$QOxCBmu$TrGh9yGAN|%Z&Z_aJLQ56-J{<9%j9)y5kykq$l{@ z9qSlC{`d;EP=QwrLk3>`tq2}e#EB8|?lOQI2;dO*C-NHJr16_%L0BdoGD(^lkPOAW zgqwPSQ_&dlE0GPmu0KLD_gy=i!N)3)#`Is7jaYJx-}P(j=?+1^_4=I!SHcVGmlI^j z8$=3`rLM(;p-I=bzK%|egmxn8(*H7_Hl1+p)$w&%#%(;|QhP8LHj9T1K7*fA*ug){ z$h{^1rhWF-neYkxDG@gRuF!bPU&q{OT4U%SSIE%4z~la;V9Ql=8X0B(;^ScXfQ?}T zM*Ms`ZKvHQBW8eXpIz3P$B-B9QJ_Gi2iKpLCNuQKyTaC0+>0wWgL{Ecp^A-v2RA?2 zie$SmHrD(2NEgyFI@Ed?+{lJ-&xF7|Be+nU4t=qMp&3iA87j5%U2B5O;Aq4!tY1o> z7+bX>Rkxm_D99xQl`!-@4iZ@m8kc5}kxhe)go3n(9&aLJvlWGU`=;x$hvu@4x-!|m z>|0n=`OrsR`K7SRFNLn^kA)1{>s3A+R{5~0+@=n2b~_oIN$=t3$K6-dS)bs}nxqZb zDfUSdPo_&~f@Vmnnn4|#ZeNGhzVp5rM0J0Qh4OCU2dn|X^?XP#4htaE-UA|JpTZ8w zV#YcAoOcgee^J;F_v`ho)m-aRkAtk)aP=4Fc`vW`ga~&jVdvmeJ^<l;)x^DPSw{R` zUD(&6QT1Yf<fFiT)`z`~$N^u)cDaMZm{Rry*U#nGL>RLNpIw{ub{X<{yJW!IrNq74 z?c2<E*mM7ma1&LgZadRJJ()BMks~jXhP;U93acVf&aH^Q&JmYR!-3Fv27;YOyv29| zlF}_IEKYL>^HrmV_NDbgjloRtaJNF}EmY=I+7E7NTJa2I5MvI(oI5bcS{<Q6NTU#k zQLa`g24k$eBaLHBtMbNmfT0Y%*pIvFvfM1M2-`!>KD^4~=ll5i5G_Rt<Fvs-nQL{F zQMI{h&{M<$N7xUB=+X+NeU=+c^LQCMQ88hgKr$|zlJ%h~`@3kW$KFZ2LhmFtQ6*2) zq8r%hSJ_6Tln`tcdsPSi)Vv`+T_s<xRs8(Gjk>o^&axBvF>FRN(UOzSk{DzM9o@K$ zVdJ@V6+>!P=d0o$uLI&kV?$fQU6kB3&hVl?tVQipX(UL^YPq(AFIO}GO~FXUe0pm6 zS(URBH`@jOvfHW$z#{lcYF@LNQ$8jBYR%@1*oVEN%*DoV2Ma?NY|h;HT0PwCy|#=- z=sD?jXFm$K<AezXL3f-McHYEal9G;T87NHMAhX`lS<_k$va<%x(iy?Wn{mf6#h%#e zp0EzDz1*JS=cknh#no{z_;1zVBN2!Fi=uEi*<r6NyXIp~@21nY!^DoySRCx%do}dG zEgXHA0DmdjC7=4~XD9wN#=ya8`Pu0X_KfR9c**}YDPcW{N6299bHf>q+_q?m^(gQn zJ=)OtEoF?~KCg}6$_PhYoLjETiO8~odD;5!I{?VDpN~w|?L%ahH#Tc*F{2`SuP%VQ zi!pU_t-r_)N}1r4R~`l2Z|2LTN(C~A)#ZvP$y`9<WI2&93NQ|vErHe8lT{2G^;CXY z24VP~f{2$zb&>3kmf>N!x>CS5A}`7^C)p>F--}o&fw#(|T={W14}ra9Hn_i*Vq^6= zm-@~xXUn5iK^ZI6C9uOnL&pcADvQ0pwgMhRL02DTASf2r%2vFpdHH`y%+JYgSP)AR zi@Cy@D9?$dIWaefmR03!v9ef_dl+~Ey}1@hpJ>C^!4;s)ML#r-DGm0nmLwCUIQ!V( z<ilC`YfP=l<rr4aZJ$$(T;7eiyn)K@dTu$@cv=A!Ql?3pfvYkNz~Q8rbB=k<n)FRL zq^XIt#l5K|CKvdwd5Gh6w#W<_szrxoqJoXR;~5oSrImb&g6+lC^j^enK-}Mec67Yl zlBm_<kEEA+&~mxSVXdulcK`f%X#b3(zU<SX{lod}c$#5+Mk?WO^ihsjv(Zh26u~rX z08)AY+DQV6vCjpPrk}=s?eMmOxtZ7Lb@i%)hn6eUSEkM1forA%+e!i9F9z!C?6vga zEN5V+cwEu8T`$nrHBfHc5vsa+Z+F-Y_Dr9u=5+h!6A)G;t2n9V)}K#mdPLVB=AG;V z)Z=Z(W^eDMx_i>8=gpS$iR|Z=ad2p$3mv_kn0qJZ-cc(z!(zxfl(V*z4}H(JBKkc? z-mF>P|DGo4sIXe5xQJdvd)Ktxj^I20K<uW0NT`8;T`CTH3J%0iM*`~<>OYE8Am;6n zf6DYNLrMKQX&-vh^x!RIl(nDkRd&=J))2Fmzg)$Q4U3C^d~H$w+eL#)cRlU(_9IIZ z^9Ed&Mhbe~f!+We{Qr2~4KQzafJ|{d;AB!=@0GtO=BLNm+$U|?hiNHVmo2`YJvf~T zbIT$~hg7#~P+Scz!x0CYeezeoI%_#>d7QKfod%xsI*cpODO`>N*w86WFpdzxXgn;E z7`6h&bQV3ek{S`E@9>Vsy(_ST9y2@W@sTUkpX8Txw3j*nN9p6jPEy%Y>P*OYaVLy3 zyF=|_x%>n>{yCR({%<c|U}U8b(AH6gAE7#G-Gk)oC>J>~zRRum*I$O0cH6vPSY}ek z@XetAdeQ&srS4ytuB^9BswpW&&3}Q-JEofFzZId?+I=9BzMc7`>M}}+$Cw{sKRWhX z;_TX+PNK36P>BX6r#-O`O<RqlW}liKw}RYTC+u!H!y=rf2`ASba;C_bR${Q6O(5_q zK)BDM3)B@Te-5iMEA~3xl6<B&&@ta1ShMcBG~S_YzGcXDxLEraWN<Ws`^_1wz}j!* zo9~V?zUnX!aD6U<(DzS#*<7-sshOdMFAQg<-kx`rgWg&1Z0}o8wfx=?)o1|K--{Sj zqYBmUT(?_;J?9yr^@5ru;e8oZIlOczg0TRCw=4u>3c*8>Q0TTVaLBYgg?gd$2;uFz zXHEzK_pK469<ZxTeY8N&V<+MWPpJ`3kf&g1=fwk^*BE56E|Q3%cXp5u<FKi3aW?fD z;>M+bxUn9?-Yis$^>Mhp5&wW7?fj7ZyX;-Ud2xyPt06ysbqV>afVK*cE}>KnPRakC zIHi7zpgJg6@KuLh`NCcy5;|@I3dblNqj-!W^w*uPON4jbus+;UU57l&Ri(SUHj;VX zg&vObZ&dzW4>=F;wO{vU;;?uWp&fq&{;<_!+?ON7pA5?$<ddk;I2ty|#2cJvG?3>y z{9&G(oaefoM^5ltRFnKQ9#@7^x2Y7*hB0d;UL|dt+JO{`DId>tM<1OKPkcm;q{6rE z0t)$c3PAp=)?A3g6@u7p-Z*uQcN?0&UUTY+ywhNmW_PvHtb${Et@VNcrCDVYcLwS^ zvR}6Tjcowv*?8<zo4hYj!*Ij0+t+bJmTB}igkKbcr;@8)M_0WtM^g3-tl>`zZvo;w z9m6Z)mi*KO(8bib;(M-Y1we-scC@s;4Qo5&Ev$iJOujZMJm5FjzZ1PywbQEQkjh@G z=$8u4rIuf+@*6eYrJ)yX`y4qb1`sP4ZGTqfUAk&68dR>WfvdI2`BDWZdJ2()mP?lM z@XFj(ab<As>d=+Ba^K)pQO#FnpHU?C2Tuqd$3y}*^I+s96Q5_ric8;jypL{5RNlAB zG1a+r-E~W~T!T3!c=Na{IWy0fQR*Mc(~`2zmW=;qWqvukT7}uleT&ID3=xICcibxp z#vI0RhgtUa>H>I#`gOXiYvrZfjL!S!YB5(k@OAxul>ao;kCL^VP%`NR%wY*=NCo); z;S+a`CM%0uT${J0fL+?9ONx+^{xhbO<FCn<z8J~cL=K{Zkd{~S;@qOVINOXBY_NxQ z<RG=D)E<Om#1y1xhi*75zS;~M%2w?MN-gEk*!F4SHstlYb+`2Brjc>?j&#N+n+8PP z7%74S1#!r}jqQQ0R~#EqT?h_G&3n~GS}WTw<fIcIrR;1Zh0C^hY}|^(L+&HHr`e<u z-eSrg<Q4kjDwqhzuC+3GD4m)T{ietFjb!Zp!|TG5Y__iR6CXX`)+~V@urnRpB+vt4 zKnXeBoJ{Z?F!Y+~{TZXNp^lIveZ<?^%WOgvg4E;8wUdt7w(N&}4fN$b8q9kjnD=<v zx4hUbZJP8-Eo4~k4JO|cc={aHsFQZ1d|2$S3*!y2_{4^NwLjQbAvK%!bEBGSH|msb z)KR}eULglZ{ijKbKoy_ib8Izx)b(l5hTn|_t4TuqMl#8E-;sII1z%DW4Wi{TX%uMT zW0h%y-0|dL`J&kmY!3oE?@NlJ%{8w%C8Y;f_(fyMcv}Pkr|^z$7G1{2A@%ZjEm&95 z;~dc_48cn%e1&092iRKghAkbb7YVKRYOrIjYK!pk@XqWDmg%#t$hQGD*KlYt$vbBk z7%{Qs?CpmHo9i>{HO9<n3fD6hpg}i6DHcgtH}NDX(Em4hCN_o4#1U+7w=X;GO0H>T zM<irIcGHC1cygTynG}+iUaB$TP+?{>Md(()TkB7vkGxw#5j<k;E;YMm+?u#Q6h3il zPQu_W8dbKdSM^rgQzMhJNgWH&^N<}#Q`K;2W_S3|g0>FDmn}XOsCT{HjIQV01o;m~ z^mcs|f5K1kUzqsQHblj_fz!eiv1Ty3Q^=G-_^Uq-a({PBoNkUI%+~mGcnf&~iPcq$ zk-lT!D5+;%J7k63<3i}&BObgyuc6$<)%1jGz+%?BJ2sY+={wrQG_?-Mdlq88@+tdS zf=_W_#WmSs<8E5M*m11E+@b9A!E(7<=i-3*h+QQaNM?v-ji|a4yma{9fKBkwPy9pQ zA6%UM*5YicvF`jk(Lrk`(pTJA)92w!k_o1C%Z{aeoNJ5Z$)yk%MTKL?R`b>j4EzmI z51_~ffcU(2+6v}ZT@jBX!8zV#8_HN!m^~{Zse_+;_x!JjePR}_E?@_00}CU}D3TtB zL%I#KA5A+L9DM~0RCC_*H^-i@heWX81)I)M1o|0mPB}}5ZZI5R7!NuS@&5{Y#k|c# z23OMop=Ua{pedQ?9USm?r<GD0SJjWR(0(6!C~!c^kuE~kOIZZBJi18vV?6Ed(>eSl zeJ!@}of@A|MvdmqZmapzxEJvC-TK(|gO}VJ?>RQ9^Nh%pVM0)Zz00<$5p_LqU<Q9& z6Zb$UTsMP`J@^TI!uum3*}M3pJ<yBT$a!JRDz-Rb9k<1!GzUKEKWYAzm%a^*CdRh} zf?uVSV&{0;?ML>+y`TK!moHz|q1kRTn(YT#vt7k%uC<;L(C^i{%t5tE@MY`g+W^F~ zzF4MiV^Ce%iY5<wN;|APs3d1tB?-FUF{8w#pAfNa8ca&H))hj&8&x4G7)_wP(x_2# z+M(H2vh$%q>q-?Tn7N8wr-GSd5cE><UUnX1!M(Gb%N0cKi3D2A7BGpg^TYu4>V>$; zKd}16>^!RE$FhL({6mfu7#<T}>9#}T*Xve?MzNn6o6by5-kg3gHaRhck>GWBL9CWl z-!~v+e&vI;Y#HMxQooD2B~$*^bS6FfU@SA4nP$B_gz{6BV}mOyIv({1tAlwYwc=RE za@4l2{LD75qi@e<sMZHFQ#WtkAXPG1-sX#yYPL9^vlah*CJ+*g5;V`UVN2@;i>y>j ztC+`)&1l&yv-Pk~8%@e;>wLu3UB9`?>c82HuS1m8c>3Cu6A83ef|H7dY-L_FF3uN3 za#?=-3LEq_#1p)GC*cMe-(j{B#D1#@Oz)agIA__RMVjJ`HHyS*6-mXDb`gD-eG*&P z;&5Fp>6VNw29Ui&w_h-6#T`!>`ENm&Xs=Bf`L_>eo_7eZ18KJz3KCt^-UFZ8(9WRS z3fHRzmiQ#uNMZEd9=0XoExp@y4OPK2cBD}m@9iWk*t!r)(B0m9ltru2<M&~vy-uwE zep?sbs-?5VSZH)*cIm_*`U7qNXLGSA_W42Iivh*H9po4(YDf<8kkHd%<6f6?3LMc{ zj_5fv?#7irst`J;QHh(!qo_zT)^!=*OUW4?N&Xpb#Q37g!3!@)#K<CUnV^P=meO$+ zW=*{7!F914L<9~YxJ>ZHF`RU@Fk_YxxwN=l$za_mqPTr>T@+6;im@Ojx;ATxHK!r; zO0vO*cye=HcFM))WDTsM5L1nCv&PT&I&AD+^iS3rXse2iac6&6x5eb1HsU{JJ8RvL zq`ejws#$F^gQ3_YdkV^?W}6AWU|o&&swLZW0K2mhdqQ1wtnf$$a9*hZbQWjL+E16# z+L5q@j6{0f!b2OwAM(#|>*=x$AId%wwToJrn}dsnqUc+aGKRuKap;QWW;{#*siwz6 zyYZ~1nZJZrHeb_6j(P@2@-<?U4f#1j-YvAJU&9JgW~xxaX_Ee@gHeiX$k%<4uLmJF zZ5A>?8q+OPm*lF>-Dj<fBOz%mY4V7?W+6erX6Scd5XOB7Uck-klj~Ni4#exLAr-74 zgix3!=PbZs<gG=@?z?FlGS-Fg#Kc%;xk0CI5{4u`TW}V77vNC|aqYvIkO95v!|9gB z>4={*8P_#L9nZ(x!@-eFI-}LVPvNBD0&AECL<}54){M!WZS*=x-U5y$l~|}@5$xI{ zzBSz(Mtk|X5p*R+(>{Q<O$2m>a&o*Slp3YM85jj$M*t(ItA0l(5Xk(Yx#mQ76sQ6n zP3j@jd1?rQTLIqz7}%ve;9+8c7W>Fj3v<=y<1u}wf*${OxDD<|2N=9bS+{NTYKGT0 zeF&3#T33&@A?UB#WNnq0kn$&-_a|JD3BPlV5;oLi^qU?`YfZ))g1gpwT)^a8t4ouC zLhsAg|2q!FpM9TbuUm_OC5?Q}f-_y72Di7(RG&&ocB6~k(EBvEFvF$S%9!cR6&?R7 zdI!9cx8?z$l*uC^0<vZFadlbXO|%X3g|diO=O2p1yd0Lm)ij=*wlOIp@j0E8&N}$A zs6;%ju8M6Wt`U<P6xZ0a!7WUnm$T#t$u04V=4rAQc2hd-paS-b_3CI2EV>rG@w9$n zNQfqpI>ML4L6<Z@m&D821<?fk;z7SOLcc_wlomzwsr*QS-{G%C9I!F$CMghlhOzSX zR%6_w-il#w$u5oP;7LBED2yTINK%d#p|~jdCW(EMj5kpeW7y5eHO1o*V~-TW?#1*3 zTn8nIsq?mZnlHJH;^9>S-g0ir$5*axndTdH35JzB0INa2)%7{4;c%lI;v^iRt`(>< z<whGg7fM{GTjfok;GITJ8F%b(N^HiixlPl|M@%#6M$t!g+BHuUSJ#wLb8iBmJo|mI zV-rTr2Eg6i(|Yc=QKqK0eW|&^gH!c|9unw{(&Hj1OUFtJIqQlWW5OG9GYVZ%gV)yJ zl{I`d%9~4#KUIqw*Rnc27;1HD7znxyIQdF8ou0DkY_wHMO~z?jpN=(YU0qZ$In73l zg*$mvjuw-{=%$9Ea;=%ZBAmCNnygQ-(^3~Yv9>ARryb>qNbQ0Hs$i9QtPX4wUHaUq z&&Dvz70!~fG%qQ*p(3g)BQ-$E&BPJ%WY%piUinB(ybit=UgP!PHE!_gcJcZbq9$Gk zRHf=#^cE8ghm@F68`6ihAswm>DHQ@~xHhDF3KFVnO&%LU9dx$Q(An*p&OT;3dlBjE z<2vc=P01D(@}JJB3&(z`5g<MLnaHV4&{`LWB${ihH{YuNX0hA{V|<~QzFaJ)Ai@!n z>s*lg0Iq9V%~f0<73=(_LhnzjA7OqVa2j|TKh;?kTy1QEpIFWueDpI{s#Z%Y+Ao5S zwBSfkH{Ut-BR)OAox2+eg@*BQ>}J=|_gGmWYb+OsH+S0@N^Wx7xK!t*Pi7-YlH=(s zZ6u9qBWVh`;z`o~*_a_?%}Sh)LS&|lCV&l+DCpO1CLk{x`M2wL9mbjuen5*%WC1?J zna*gHv?iu>GbP#Fca!uHbBGOP*se3gol+9N9s0RTKL>CMsB!FicVfBTV5-7@mol^` zxVvrp17DFSMv9MG;nD33eW5k=xiz)oF;!><eYGp-3T;Z)=9|*BQB%4?o6=QxQ@S>4 z%Jy3QyVuRvQw#aMVe_Ql&Xj~3l3*s+m>3cTmV+UV1szxHANJQCmPN%r)fWq+P`Wkh zlU2a5s+)@Ygxwe(&D0i#W8Oj4yhHj7*T2>d^A)SLjGfv^?Ry9u)#Hhi6eN;W$jWN* zLmgKf3z&%F{$-8KLc3r5m1Udhz*Wls@S@og43D6gZ8`)mI^J|XZv42ffWO*0v$=2G zXc*tHgE7=7vEGpRZ_<vzebqcwj)n8=hYZht+~k1BxVPD)3}YWy!5C5$W7)Rqwt_LJ zw;}N(2OVRxGmcSNmmjzZP;J4i$Dz2%FoY*HL-+*yLpc;bsrL$6zL=Ex!GD<oK+g)% z+nc$7)`kI2y+KxRHCwL8FO_qO9!o|1F;-exE#xHILs9P1Z{NE)JuxQcmWou4k}IWh zHB&S<sm@zWq<hD04Zah6fzb*KuI8N20pmuO!zy#H8ds-2u)U&{L6I>u5^izI=JK$0 zUu0^<4<tLU#e4z1U~fpSZ)Q2WP<ng|Q?%=>t#n`>m3s(UflkC6SukHoXVdU<whT5} z*t4~?AUsZ(8<N21R(l>FD9%+@FO%Cb{Z{G@h=w2sb<7|TeiiDQ%gBDew@F6!t2MlC zy#_e74Pjs5j`xVyXfO-8kyJSo;R%>>L6v;!CHFENDa*Dh=8(dNw$bsOlwsvI-;T*Z z-x8vm+0+jCw^gx(QE-U$n-Fxq5{KQTIP7gUhux_SXn!MOD;p>tc#pR|W2f#w=47Xx zi`Xxv20)ysBZ*rg7uJs(MTUgBn{(_*8{q8TNnrO{FJ%6H&c82h<FYf2%9Zzo4P&?N zy#4h6XHJVs3<SV~SIPmJ90w5ty5)$RR*txLuz#PhqQ-V8t}zf^nSwkWn;xezI7da0 zyOXR-)HNsz*`o0l`{M}Y1XeOQV;y65;EX$=BAzsls7?8#b{~l57oLcBBQ(d`%^Yu5 zyf%i0CTjt<A8$8?-2K8g9h@*zFdlz~N~N=k(+!2@^xl%=3SBEd`FfU_-8c)b@Wijb z+^DAW(|42=xayY+!+gZt0tGKR_$!X)BHeCrLac+AVd#krT+(dPP>2TfN9{;vY90{u z%V|33`YVjmWq&pv8}xgvWwLk$b!DU4x_{X6G&suUERLtaHW6I$*E~IEu4vM5B}y5o zLq}^_)f?^`b0O1yU06lA=UUUM)k_?E5MHS>e!rK&kG|9p%;hi+oZy@5>2aruoS(Ke zpv_K5$?kN$s~!P=(!U-sPLyT0S0~*J&<B`%*Zjb1!q^fHBb*o?6?GHWL!w?%`J&cz z8dKBhhLH;-&jVL)xw$<U5|}?1(`nuchj9cIfSY=g4a7M&_s-qgOnCH8Z3S^wTR~XV zU}Gs^n~@U6wUqD_OJ8ffBmk4Ao0JlmZ-3ePT`d6W**}jAy@H&;Pz+~IyeNLYJw0hN z{q%XFQm$$q8Q;!K&(e?CS(G^N_vC#6v2E_l-;&>ipF*q^bCOY)buf!Md_Wvvju=pD zX=-W0c-mDlgaQXM%fQLXH!8M{<a&vH#`xQk1<&;rOVz$b;M9lu1iDA`NnSlCAN)cM zCMyRI2)ZMe4x;<+y-5Lo`K4m1oO@?EkD1Gr>ezC=upo-1g<KjUmD^q;Qf8fpw`uvZ zBC=K4in+C_{E3QZEOS3wkW9an9;y@EV-S~lqA15_HCqL(vcmMuWyAlUrW)+$`bHse zYoewDFkE@wZ#}r8!_Rm(jey^(mr~m-1vqRroR`|hU1N)|V9%|ZM6?hcY0HaGCV)n5 z0Wkn;ZZkEvD|U#kzw98S+YXB@mHCSJWE}RWEf{qYk7KvW2Bx|Jt#3%QNS&2J`vW4$ zox{X}<DU3s+~E>3S5vo9W{p2@gF`~%Anj7ktRBOhs@2*DqT4q1SJfy4yl#m?6N7IR zA;5d4AqYe~HI5CC@Wx+4x$V^BDR0O0dYgSrHR*4-r>xNt(y2*EJK3{=_kL_l1E|j9 zaj%yUBIBKu(NJ;TUDN37+|~-}t7f4xlk;<p%n%f!dECk!ua%o_FKIyS*f?Pt4PcsN zOn1|}<Yq8UZVJ=nI+&uliQL0exJM<uJt3HSI6*vf1RTiZFfJ=%qwEr9WB2nOOo})9 zm4q5Q6m&3TZ6nV!#TA=8<8()pw^vqJD^Er>QnNAr!$@d$-~^9T8pd^JZhId}(h1>H ze=hvl3p^HYz)-JT!jlZ)R>=ktl-=0uK*T`<))MWzg3*E%@PStY9#zd~8*=o;oO%EV zl^l?RNp^HT6gGa!ebx(J)q5D_fX|~GcBB^NT;gaDar3epwdubn5kEOz1L!fQz>y6K zxJDeQy!cGqrME{-+m9)Fdz3Eo)Pc5-+VnSdSTq6sEdbGtH$fYIDe5EiEEePENt~Xi zaMZqsg_sjcl4COpzETxuAHAc`Gx&Md$i9anHNqFf*|wf(;h%~iEsSynBtXWT3W&_0 z|9P)m++FKMu}uO!$kc+hJ59tDVeO7LtPiV!U}5IHK6rLVoJ(gc!8N!7t=I{F@D2HK zB%(Sq>{v&2TEgwLKdRYjiFG<{3wD~?W0F$VH_<WFgiOjkj=C%i(uFk9PK2~uLGnT& zc>sy#G}2=3IT!5d^xe9<>kq#{8ioL=;;LVTI4N)!>jkID(b12Z93A~;kRuytUF1j? zP&b+>26c1hmzT7B_h~Gx%r8G(r+hcMwvaFJ5zw<FKza5wa%2;todHmJTAW9bEDK2i zOP?@rbIcj;X-*a~<tn;V<57ft;DH4hF_5fg@Z^MogDOXHJk9YPZ_I%44?u+2v3We{ zprVho9S&RMtW|P^9iF7rHYLTg7&{DXzJg&^7mQ7hI%?5DOc5|9y}5$e<wOlZjBXf7 z@_9&uJ`YJ$<n$>;=}@G>ITSH&-f|C4!am)O>&xC>iE=dIX9}Hyo0Zzze$}FMmb5sH zC1)?jn@=kDCA=RP+Od^x?x7bAmZI~0SmlWbziBhdSB(`B6I`q4(@HtnYEm|<OJJ}M zcmH#8bt)niiopqBmJx)(JFG5(a@m5?r7aN<P@hmoFq+Htm3KO=n@H7&yEob;dZtyU z0b}L7+KyHKz8u_^jCHhRT_vz%#5u&;Y13|k(d%wE>}u|F0<(LnC*a9JqyI`LR(sTm zRiCXt*lY9$aFo%>`h$MZAK<Tj34NR6e%BV^w>fW@z7EvJJt64s4`Z(2-bLv40la$5 z!@19bG7NPjBAO3wXH{u`TFp}bG0|4F@b&@I+ej0QCW${QO|U>G>$$+q9tb&o_;pdc z#jLpBW*rzDASX!81>pw$UEF`$p#MCw`-p^0H$BPO@Mj&c8+CE7Suy^}iK_*5w%azN zv+Xl``eD7Ne=G0lq_h3jI`{ND*+<#Rd^x|W{3?Ds4xpa>2eES#8@mt6#?faUW%GsX zT)}pXup`pc*g_>+zyZ5aLt4ck;INNc77_5KqL_*IHD37zF)yKuTp_z!f!UPJzsVK` z+c)cB@$pa#gQ#|`z|uqs8`Dt35uVje9MGeQ=3_8>>Xis*vm%@=ZlDjkm;|i+p02`G z$)`kowR~E9EwUc2|0kN=(cR^+^(}sxZ+4P9P8&RYCqJ~q!{rEES01q>Ain#KPdYpK zq;r~2Iy?Q@n0Rpb6!guHV>!Iw*K4Ivc|l~mku;vDU2~7DdGgB?+0ZDI+&tSEyH&=n zCx{)UZ}%7XW6jW1&2{0f0=Q`)ThPgD<ARr7wP0QJvc=HL9hzQ#hUq0)!hNRhGcF=g zOf7#P0f3&3L<Tl>!ezmDlr2{{yFQkxEkTfwa05Ob!3j=gkpvl;zOrhQL6lp7xFSHb zSOX%fen?Wx5|Hhk5GJCy!KvU($PupiLJ5?oBvK1&WsF@VrZO|LTBK8C9q<_~F5sEl zn@fA2eKg)}s9tQac;=DJE6~we-fhkW=3f(JL!j@@T5>#*3=XLgq|MWsPf|46ut%-z z*+jJ=Z_{Rbav}HCL1wL==XwpNsyXrwi^qFUJl_LpTMZ(e$v=z;G(IEp&^4S<kYx|` zAX4?<uej`OZihU#Pxe&=OpRN&6@Pi|&!MO2SGNhR(5^#wqD&BjbLih>l(!n;sAt%S zHw}`#jq6K6)2boN_h#&Ty|wc7y7_k1%D2nP2exvys3M>DKvYn+XKUb+6wI|BIb`;Y zZ&2zzwr}XD>*{gK3vRzA_20&%{ydWUZ>y8kLx?~5lPUe9Mu79|Yn!rVut9*ft3=O^ zu8Zw);ZC8-<LoLbyDB=8VBj8ebrm_$Te!3*R3%oR>wAi&V$QkGhb$g$<%{{sGU=Tx zljypg^Bz1AEAwJWK1y;9H$~Mpi}qbB&i2td5~RAiXk+u}Fk5EsPu!KvO+^K`n26rs zr9{S2PHETp3V6Mt{zWrD{;`HlZc(3%tY?6Xa&%IwN=O7wDk_jnyVq-H)G@x2g^8;p z<F#g`uCWtaNQrbO%!f8<^jLO#D1@-zUO6eZ3<?BiT;n<v%}r`m2445q>2>MEj`b?p zrVOb&ZH?EqFl2i;crM#7(B;xQUP(aOsW$drdt>j>I?CUS`1(<f!7g_UB7rd=t%MH5 zh?@h}%ok7McKj<Qa2Z?F;TU-Pl3x)a4qizl`nwp=e#@`P!f(Kec;%Ekz~v4)k&g~h zm?U<Mblb^0Qvj~H{XlXaKVP#A3pLunU}=UQ-b^bR;6@>R!V}hxraId}=ra>=)KVf= zSH%CqEjotzF|Z#SCY-R?m1pbaGTJGc$%Dv*cqc>ipGse`5$>=TDw@N3Cvo6Te-S$q zFV$&B_|X4*g+0h;*mTjh=2p!->xL<hf+Fx67T-wfw+_XdwY#wemW8T0TK}wX<j^yb zdWg$86hjM^i`eZjjI{pzx?l5ICjsMT#H_A4@2Z9`Fb>GYhvA^v`xfDhhmM|B(>T@W zWiM{VIJHNsH`_O(-s}xKviwWT!<|7M?l0BJ!`+)YbFZ|JD@X?J!zKXotSfqc6AYX# zUjeC_;wv*tMCpF%93*PUdP51q>g>=B0bm4bi<_~<Ze(dV0jyntdqlvDFP%h|iukRq zNS))%3LhvI)h&ncQ)MNct2qvJBM_LQO;ofZGr6E~UPEx^<kB>afJ~|5QdH2Ant{sb zH^^))<*L`8R&(kMR6Wj?suGr^%V3{00?wKBk*wA@NJOS6)()vY==^piw~)`m_*6uB zt|C@e&#<-do6Fq&V9hWIdm+rDCz-oPk1Hask5m)D;U(dc=RE>!1rrcJN|M*O@Exiq zUqu6vRE&yeGb)XScFCa>ACH<_8^VJpqG8-g?HST!%z_+85G(yd6UEJnQQEA8VikOW zp0<$a+NS+6XupgD7X^ooS4;qg8U^_{X=_{sS|k%ybwEj82VMF&G>V$nB-qQw)YgO~ zubcLQ4#hA!Y$T;_C!rXR=-TZgHmYQY;-Q`6P<q$v29NW0siHj;DlX#fMmA1L=^QA$ zZ#V-n)uPNn+~xzcy&%=6WV*54v2A+$%y`(<^(*PVN8z|Ph~vIMkdFN_WmlM*Wx$4q z=%)z%{TBMXb?woCgHsV7e5&`rbZGLy=@#V#XM*b<!htx<${VAwKZ1T)gRFc%YHfS9 zdR=zbx9Vwql;_=ELHnjNJlO9?Wxv0OYM=B4Trg1NJoor+cdp|`e-!g&bN~e#tUhN} zy|XW3&)8$;P?XxLFJaxPc)~{FU=jUhiUb<Pku_Ek>Ht*pX7J)5vmq2#%1C70ZttXp z1+gOxWK@If*C3+`WYiDRh6ZKM*fUy9TArIJJxNpU<mFyF;gYdG5Z^2^7B(>lr^Cq` zPQ7h4rk>Li*1CS3UNG0VRsAgB`k01ISfal}{A247x5pRS)mdANMlUOIVS_6bpqEq1 zGY;OW6|@udkLHa<88c)<dCEKOouPSic7z$&qi*$XsM!rUTF-E_=QKzASuCwM+RxU> z(cYT8uQ=L<Z2;ui)A$FQ;AnOE`BJec^KtGpge=4a;H4hr7jk5k$2vGsSt*sO%K&I0 zH&-alKZKv5m%;!u8ET{#;9l3^q}e)dRHE}Jr{gzNCEOJ{&lih@N3)Rm_U!CbO)eV2 zm8&bOVtV%86tvy2=_|QvR&(k31)JF>=9{{M3P8n-d&PdhzQM3y)zt-Y4GInm3i+s& zj{16dxNJSZBLjrHxu=WeEb`sChs-q_wtWK$!p~V-{P=o&`<%sj&xNwxb8Cx>x$-1= z#L)v^yB=i6QA}{84=SJ{T-x@Pw^l0xn>&rVV)zAtD^_!KYI!SPMzO*#s~G-Xv-Z`j z>NyDXQL5CA%?aXDS`8%Rx^CK2D&B*skgaBoFhL4vrFjNn#Z^W-dTPX=42^lH(UFpw zZ1WmeqAcW0)h9q%ege@qX@tv(TLo|%3}l7h=~DF;3w&144OGfIfi$w!YIc74KCE8; zJxX?|dBBMW;~Gk2!#K;;+^UEJ^5?J_jfyQf$+h;zOHDu5_DWI{+%WVHYDi5XC%DQ{ zFzFacHlh}+Njr?_)Fe0##(C2T+9Wok?P`nK(Y2u>@n~CgQj6JP+g|Auxn0R{9kvX& z)$F%m#`s<Ce!Ere`KV0f=td9yb{<+YxrO<UZm$RUTjg}GZ|!7(Mk$D*$`#y{+ik}_ z==Sy~wxG}D(Y_ShB#*YY29LHkRMaG&b~Z3Qr1;d(X7ua(A*c)f`g(14?yRM=(E&Bm z`)b!<PF_uEeHG0<JC*PEMV9+^#BEGR9j)2#YmF40n?!W880(lPRCN!I@rPo)R_M6| z0-19$W6k!R@=wDk`d)CM@fxL0uZu=_WpYU*e5prO2@jY3G2gO3uGI1PPB_B%ckt{U z)J(eFO&B~luDkpsBCV`X2ZQLHqS)&-B={aT8trLCWzHz{&l;*CnOc&*&yw_gUP<2< zh8fR`A(<~y=1W#)Ub2_8FgoMR#68%~QRkWtb;}ApT~3Dx>sOGV4Nt4JeZ>KA)d6sA zLjabvKjKLHqcudX>sHsv+CRra;se1p$(KcFAE6*S>XY1ku+C~KHJa8EFiw$CJw--Q zY_kjM^8?k(pNiUDaGHrcLmu?Y@ne=8KS_docUXtg>bhab<ZWB(AM;85H{F&Qsedpa z^^et%`p0}yzYWrc24((nU@7fQtCez_4@o={h#@JEC#9EF3KmDqw>YRLZiU<#wO9DF z;M2G{JG>owm~tDt<!Aj<m;3g%OQA<~+$Nvx(uB1czpuN^x*N?igr_D^iez-$Sf`6! zgzqSUd%}1#+;#V2FY-;@i+vQzBBYshMt_5mtw~4|kszH%x-eFQF5C<*$w}&;=wSh3 zpZKwG$`IDL(81fM)F`9s$DsOgPbpUR`V}iS8PnqzdIe8f&-NkJfXuo&n2eedQ+^!` z9du@li=!24M+$#Gi+7a01$y|pNiF3(sA%=H(!^`B<R8Wvck#{|6iRdNi+@9Bop39* z^8B#3%N;0*yoE9G_F^_;MZo;>eH|<b=k8$!_)c2CZWP|Tw65O59fwHaMFl#l0`7h+ z?N50xw6H;GTvqUL4AaL6_u%Sj6}OL?Jv-#yE%wPTwBcktA|fSHcl<QZ$8W*+4<;sU z(n5)!njlimHOWz%ko4k(x$lm$WhdBrlCnubM^Pc&Fl#cmI@HE$pM5q$sdsd%v1;L7 zRW`@#OEw82IPI__k5Kt}%(q})vu5UrZQqo$W{W=u9T6>B3Q{$da9N-8yWyM7_8yj8 z!p~*eh?2|#S+BqbgNe}+?TrI!6m%|4SjVk>4YK}d2=jZ`xru=;tjmwv5Z~u|Yca=@ z8?e;!@!_Tb`h%$bt8Z{;-qzaYRo<ct@Ry$A5i6usM08wcI~@;eC2FG;%1L3Dh^Z3W z{Uwqreouxq#4Fw|uSj#Tq%_2%ehslrSh3VSM=3#8trI$GS79>><qo4zUeyZa&td6n zt>*+xw$IgjsSemoDwXnbGk|%v61}mRTXhVCJp4p;FKFEGi4};f!!4IU6-b_2mRTyR z)kvQPwws`3t<EpA{p&gwtm~URke`^j?_JrMvH>b;_EzS_gDNOLS#_7M%)E0epr?Jn z38bhcB&N!xCA8ADw5A)HhkQf^AzHnBqVjlAhdnb!u(ok7b~mc3*HIR)qj6<e#vxv* zVCR+s*N<0ZcUr1LKyDR|3i6BM{ne#6UX6IL@p-5QEkXClHFb#us1X}Ljp%_IF$rqK z#=Pt`0TvkVMM0OCjLWLy3BG#EvcPCGZtY0<ytr{$&k)H60|Sf6|ClhhPEgKf-VYkp zR%JaYtA>W~TZ7pgZ3c+v5eu+o@DQ5)xjOulkL_CO+@jp*lgbKLn+AJZZP)Zp*#WIA z0C)LcAZWhOB5gn6bp_sbqLL<m)NzkD9t><>$*0^pS1<SFB#9d;0$i_Q1ez#7=cw|T zmji^6;Plh3kP3I33U!p0jMGnh$QC<xL<qRiATn1ii0E9kst)?&(GW$2x+)!7?(eBr zQT+BR#qT~_@w?xZ;(ltg#yegODb5R(;s(s*Ixy^T=;~tA!=yV@wzbNL!i(t1ti)EF zu}5nI$b>B`DFz<*aVUX`qi~J36HQqurh5}kP~Kjx?yCjLf5*n4vi|JwX-u{%VW-n) z)YE0Xcwy8d9X|DlQ{EDezrd*O(!#M?1h&AlUszXl2Xxak%TKPWVeB)*ZexE+iQI(! zkf@ErF29n*uKctz2^t_h;~AxAJgfDLXEZDM6UO7qw$}Y#CURhjy$h8&FJAo9YhQfv z;>9?3&91a+1aa4wbZ5s@XU77a?IKMk#D`69FyNG~A?5Z;(Eb;e;e*X8Q(kKsqHx_& zLkzDqv%Wnrv+8JV?cqP}Ou;~~D|b3vc)i(lQFr?#J!yWIfgK$R@1qb}g575OVbsKC zxA0r5`&y%kTNIVxD#qL7dabw|y#ET*ujsc9#RP$8E3|poy9#l&y;0%`t}CHu*Jgy4 zeMV>*lS0dgxEAY>^W@pTk#ab>o}rHzaL%Gwnn8cDY$3l?6tj~e3#K6X>QnGN^LvjK zbC2)kifdx5B$?SKRs6l2U&viw%NHbr3;c6MGO=*O@my)G+IQ!jzI(u;_D!J#(|6{? zr4uJk*u~imS~9yUR2oD2R+sZ|E-s-<HkrjAl#gmzk3%I?hxk$>VIags@t4mDFc=vc z9DMxvv0pBe@CL6zREyy|?>s;V4;X}EQsvM@JYq2DDdxp9X!M)F#|CCnlSZYSF>gJ7 z+i1USu^qI$)W{V_v(khGnu&R8=>_J3u7vQmjOYpf|Mzw+a8XrTf1ep<hKD?zK^YK7 z5(LBtk5GB&h=QV`5a5N>1bGcQz{I<>98nMvOv^M-aRenHGZZsZZj2@d%0mnb6btj3 z)`tbxt~V>=u6-WNki(%b`2|1rIjp_+T6_KX+WV}%&OYZDYQNivDr!Lr91U5d+bX2D zuZlFI#L|ZL+bDkxQmarOREH)YJhLg#C?!ln-2}p4wK5YmDLIdO_jB{M^u}^?H^8db z65AUTEadaSw?XX^Wc-067#0E+)(E>#3sEo%Km@6Wnecm*6;iTiMsi63R33{50A%gJ zmAUBdY$!kRO#>;e-fw`%I1h5E|G*UkJP1@omj$X_pgomofnQw?^AN#bofe&(MmA}q z1(zgBHyYsWUHT~NSHn*>RvTP>-%WtJaAW#ua2*lyQAkKL_qCJ9#i!fN_L-)bjppd% zcjy>E^Sh9-8nh!o2{TcUnz)@jbK(xG=Qf?$AR#DDX2yXNChs-z>b5_|wd#EN0ICW$ zTzatO?&YWgGw~N$*Y2L&e}Pl0njCw{a7AH}zqsmo7g^<@_~yKv5@%4(4B_uN6DW_* z$MX-Z@>)Fq1GSEi^QRJk6-q=>GbF>G!>QxrIHm&^Fd`p9t>a@99C(1zKb4%SYLt|Q z3mIb~xcA7S(2;yWb{*dYlk`EL&Bt(tAA6<biSZ;(${U4C5FmUMN4X|FS*r_-2X_IH z^bwgk#}qdPGggrwIO;dBL-;8q%uGlzGeOM=91b+Fp^dDke+Zie3hQnN-rh}u83tf3 z;u-v_dUOQzP3n<tN}&+V66#$>$kOI?S(K3x5?nx}LG}}l<iXrtqMsKp)k{y@wX3ev zfrvS~pyaMt!AZPo^j_uhWa*@Mw12_bV)1u{s2xSz40D;W{G8myV;yhY^0C`RF&)C) z=3<uz)zxhW*XAf4dxATvJGb0W9jdBszy5uzC?t&TA#<jO%n;ppd;`(quQncRY38io z=bedYaXc}{u0pw6IU%wux$M<Ng;%z@-}~;2+<>$HD_ZnuMzjSZIuhgwQTWd}(E_z0 z#Si|z#Yq!RYH(7F6D3aKaT0_RcbtfkROGVgNy1w9U42iirgr|cq0c7!_lKf}mh@%o zL@im0u)VSKK1#acTU<J!b@76(?bd-YHC4r5|JJiyQ5#n4`<C5Yz1;`x6)VgwR{i(O zg`&pSs(YPZJbJYCvxE}&E9Vl9r+xEsKd&k7n(u*s-MH|E)n%dKCeOVsR}!+*D)$Ah zta<YI{;|H_*M}x|rN6HJw{zT#n3jc?Rz27GRnRfVzWs;h`#tLG`FYd}q3aWl$9(Z* zQ)v0N-LaRw58Q64NU~2Yl-+*V7J28lM-{iu^xV!rn%@&>p+E8P<H<Q4`EUOC$yw>~ z#SgY_3R#(cVt4=ijRA{Kzc$`yL1}htV}OhG`iSFe*1z1+Zn%T@sHHw&-hZq!yJ|X% zzZu*2Rl=M*r}lVzRUYW4;T1h2yg%P#f!8i>|FoN@@0K>Tn%z56{)2zf;S-(Lm;Cs9 zrX#@nwr+SUS>b(WXn0Sj7oJ^EQ@bxB<jyR={M-k3I(x?+u6WeC^0W7UwQ4jE{a{OJ z)>g0LQ*U2(E#KPepYX=R8~ZZv)a1Fo<#-?9jnoZq8ymcr_7-ma-t)o72{rB)UGLPk zZ2T<IB{L(`yZ=A|4X-5&yu||;4-M~Q7VF&^z2HE9OMQaTBdP_nzLWjBD+ae97~tKk z6JDo+R*!_enXN1DUA*(V(K}ZTulH{JFxS?7w`1#PhMV&mZ!Efd@W%mg${z{#_nZdQ z-T~{4Ww+iBwj5`JH&GY7>N=~AqYbZ@C*Rz&-rZ-Ot#{MC-!k9)EFs*z?whhk`#Zn5 zt*W{I_#2;xmtJ4w8g=tVecI@oJ2K1M4&JBX9rKLV`<TUgcSZ-Yz?-WZ-c79VUS@$e zez?iu7~ACVif(vkvB2x_+_3PDeF|RjpT-!&`wQFT5F5lY_iob-?`Bqb&$GZQ8xG!D zHh7D5!uv@i8@%Pi!fW-6*2@O(&gdW(>-|gcUiiD=WwqYn;T1n4yuY$~4$D}qce`$Q zx3I$dDGR)b!@+xz4c^NCzx7Ux85UmaXN8y5dP7*Ow@5d<xvcPBWPx|>aPT&<!E2=( z-dEV*9o~9vo)O;PSgkjd#d_b+4R0PRy!9;bMh^#XI~%-Cy5TKmgLin(VcfIA%WA#h zEY`bAH@sU};l0EH@0#J@Eo6gtmTq`IW^>HgJcoXR3|PC_!n!RFFQJ8aEhj~}d@ccN zje%23&FL7;=~&IFmF85eIkncD+GtM4k*9b;egt}UJS-#Ua9@W1^QRyIB3}u(IyxpM zn0(%Z-eZuAZ?7-GuWd?`rKG0EWTfMlYYcHWc+d@5IuQ0p8c(0U48#Uwu@a<5J=^xQ z+_XeFzUTd?CGiN%)fTe%KtWO$n?0rorAMzJzo<n8xR#+hz7Z9HU`o;P4Ki{<JrYJ! zcnGRft)nRdD!PIrqf{VcssT_e8e+*n3>V2$5^&kkxU3N}N8$#(vnVMeJuWdOC7H=E zf#o}yfx{l!8RlRMknvAVXjK!=lIRL&NpLtz57e4~vVJv^_E%e~AGk@-SOO1Jj*f5^ z_4#DG**@_p$>|dO=3ieslBt~p@4WD}bM>&3#H7emQhn{7izk2VB=Wd)s1&M*j!8^T z@U@#hbvpTDCs`MlnoN=GW=njgVV-2D?C+3Af6Z7U6inJ1)U_jHOd={k#z&1{EKO=M zN`|N?nFZC?6Hr6{Pg0A^;rePE1*0OA??L(;QXr!<NM))bkh{A(G80`ngBp9w<^{C! zx;(;oSI!WLx98^-l^UIq9W~mk;J9DdW^C;<M$r~LW@<P8Uap1MGkfaoGS$>oYMWNW zi5~LaRiFAxSDsTkmkJlkI=j#16(~Q>LW_MIced4>&oUMfsXw4=*&!3k6LNkKJ9F-K z5gW9{aSXJ@2|gbXN5_IDQn4TcT28Cs1*tu$#>Q%*n^r^E?Xm%Ch2rX1B9c|od_f}e z8IVYGbzr#KGvUW+kWM1eHKoSSL}b>0)}*ATrzB~{kOL;-ohVc#OVR@AcrX`thee>D z8I_0QuuddHbBf_4By^J~@hAT9Min|R$%FcqZeyd8qSMyVv91J2ol!7qK%<mQm`xNg zZ$il_?ijIrWw5xj?*EqdRe0BjqT+?9=ZBaY6>pYO*thiCdavUM2Wjbe+d@^}%{TX* zda&$;(sS27>`JO!mUun0Yu^<Av#m8><Rq6}rNNlYgxj1MFmR~ag>1Va)%MBSkyBh} z3Iia)gy^EMQKAU6QVA{Rnr%7$&J_N8YD*<KP}R6eY9Q`$)DWeZD5W%%h}P}=<W=X? zkY;PWY}r!(#tWbD{vC4ui&IAPQp1*tYj(Y)s8T}bPleLcP+-xH*lZ@sE^<kmlwox! zzNo}f-Xe1<kIzvazEs#AQuXkKOUI;id#5w)oyM3^I;5@ua~0yL7*2~+#H|-)k>{3N z4Hik172mu2HQ%hrQC7NeJ_-|CCU<xUc~dT)&fVuKHk8+L-d2^zz2(<j+{_~uO^-Wy zh>UP65AA#y{%vl_2`I~vmssBKRFxJeRfnwS28D|)*LKkDabw!!%Cu)3r0%%eH(uUJ zkl}hW(UPrCZimmDWFoHFw3Dvr!Bli-It$0`pJ%9m4{faY&g-Z$CGIwA0-mY|QiX-1 zlz6@%JgE5s8+$w-xC(PPN*qHsWTNQ$bm=wGsdNwHtskBwVxyE?vfHR$KB9c8m+dRc zg9rDr#CVa)N!EFOx#EKyA464MQLQE4WYVY06^?|B^SeBy^V|M?ZJ{~G+NuEyyrXai zT1ZIIivzvvOf2vZGV+kOpE%j4swmhe`o&W=xyHOQhNNCUaYl8WnKNcGXv|<R!twc8 z4AoN$qnR+E8yM53RP_2=RGba<y#Ju0qx#(pE6}ZE7gne;Cj8sOLDn9^TW7IVU&t#c zG2~<wJRi2!5i+A_U40m>ytQ@pWvE_Sy81k=>+HWp*O^!z=sLGQQpxCQI{wL?RsLdU zS!7v7?yLAvdZfrY-KDL@@0PU(96|z`zPg~KwUjdY%+c0zE<>HIrKNPRmUvq711(Pt zucad<ss?MhSUOqu<@qI8OCxDsQP~Djf^np}N>5RhQz=_LPBhc0$Qm>ZhdT2>Lz$*G zg_oV$Lj9UohzmTzu2u`nkr=v87FiyjTjI&t9R*XznzZ<|=$*o&<|T$}kG7wHi3@Ue z`EB+OS}Z>8A#4ks%gkQ$8AazYv&8~P{RayaIU|985YHnFMo8n)ay%@;uGTESbn)A& zA{Zf8YXX}6t=&uZz-eeeGw=B@x!c-~tIU`QU_|&c2;;XME?}sBi192r&>BEEK8+#h zL0uq#>qa4-59vZALsr=ct^|4mnA=U<{KX$2-wU*k?!mN;rD2=DRBQLbbOYJDxArQD zwwjZ&%^&XFv_as%w6RRqse0!Puodr<y~xXH%X)|7-jUfvgm?4k{@<JrX1;_3dGFJ@ z1u|MJq;<2H!NsrlJWPnzrKZFs#HC86Kfl`3ef3O5`s%cFWCEV51Z_Y&&?WR0GAHH} z2}B9eMf4LZI0ra&95ZBQ{3Be?H@Kh&!GbuYcNozbWpW*5MsPorj@yHYIm&UTQBSZS zN$D*lZbq5Zqs$KO2`LbHccEr>1o4du3fX!h&VQBG$j1fs1#{0!O|79LjW44JqPLn` zFE!;MA2}kWxuEqfz{qql8drsSss-EC;|j2#GNs8)l<CO5Btb8!IBKBVTB7WWM7Ijp z>jqit!-x)*X*jYqM6b4>-u%J*0@c9pr(oiS%2c0H#8iZQZE<t2siFD4LX_RXUZuNN zuvY2of-;YC+jdeK-!VfPj6kysYEw$dY;K!WP@tsR!f=%n-<fgiyG{MEZa-CH#sSg+ z{79J~NKV`*b?Q-4RiY@cfhFKdHi*Ibq#7#s=5tT0ZA}s9E=>3js&S80q26jORG{4j zO3Z;qo@}?^aJO#2*J8bHs7$V4J#|VXn@glZcLL?S6bvFe0vWZVH6RwZ#Sm(;@-`J< zIB%O_IE9qK*t#Olf6!PZV8`eH9PR-Gl<|>v#;XT|f$BU2Al;6_D<^yK1g3*?;Rb$! z2V74*;aWHoE`eTnq~oQXEgbQmBm6PHK4j{qkB0t5ur_-G;lZP%S77kNX@z--h<`1f z%L&306T)X2n$b%PZEnERXWV%08bg=UbvByhOvH0H8esQnF<RZRa(q-aGIm{rR5(j( z*8^2#2^3kkafl*w^zp}Rf>0EitVV`#B_KCJkYywyWNOm1z^_(bYal<V-&30&7SJT! z)6~7pua;AvZQN3jPfs>WnaL)InMm<Yf@PYW1h>GuHcG12a;AfsDqN<@4v-r{hA)=F z|M|8sjjquZz4&WU1PxE{?M9j>zVwa=&w-U#AS|rFPeN(3SZ0F-7y24jThguhv9WP- zMHso$!;-ohErFas>DHn^i4}fYfXX8sU><ai<u#<zc7W*}Bg-H|FAC#9lkiR$%P+ZV zjVFP(KfLgizZA;<`s!1jL<A-d_9TRAa3s`K;7E8mE5b`W4P-aKUE(PmDR)W9>+24u zU8PXCPW5Vb5s6IExc22oiXv`U;$1WaCFJ43=W~NZq?3RT*S8&2(Z&?U7*nXWs}#;q zU(j-uU}4$N%P2_6Uamtn_E>1gMHY!yRS!N733#uWM>`U5V4R45FjAIl%Z|_``ybk} z=jgA3H1f|mqmCLP1FmRM+0XYY&o7sC*njG$aNa+;dl@gnYd5d#=P9su+~jf_Lpup7 zya?(w=-i-1%#-lHcPDjYysi~YyI*9yuIZ4j9E_0gN5h{&+e6BZ=akS+tSG}p_AcE) z8A6)ZDu&le1{wS<%$FEyq!uzOkXdi9B07zs=s{&nk<$S)gEKsYR+E#10uMSDB*34D z93r$Cl!2d6VnUlqBN5ufF}nO|AT=gt2%+>Vg3>gCV@5(S{)A5cOb{HMF@#|9^+S^R zar8&H@FPb|3!+C<_1K~Co}ZGHOg;rRAUJj;1ZQHwZXg)^Zry_MhXf?_mjni6$B$?z z8&J(yGg23ffw+8f9L&(Vb;56Z(<qZX63XCv68WwmR*@Q)IfU3?$VyDf&@$iDkr17Q zMZ06s^5|FSm$vDaPrY}H5v~{s;pZsJHP8}1aO;4Cg6sycE<BaMz=k0fJ8&aJ0L<uz zIe@^S2?Nhhb7_JeL(roMJchud2?h*-PZI<TK|mAq8G=4dzzS>K)|fJITZ4?Ba>2K? zsqRK(v*}B>3HZ4-`&0<4L6gjpFS4nC=@ZnVNkTLi+3bR|*nx^;V7+UTt44@i+>+jh z4Y*;J{fIVwTBrkDPA$O^Cn2M0PH>qM0*%Cy+QaJL0u#Iz-qh^<HKb8wY?aoCGoaCE zN~2N825}0=it@xXECG9v4m@N$ID?EC)8Ykayk@T{E#3<8(fO)fRmTurlH_lV?2s4< zmf|<MQIj<7Q;kPXI75!&Ue1V?C%zh&%G^(|hXsrH+}6^8@5xZNARH#aWe8dnfgiR_ rPfd|Cp+X8fPXhGByQ-<(<aK<!LwdFoa~DX4sO`{$?gsr2R}5lC`q4Qi literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/mediaplayer_readme.htm b/simplepie/demo/for_the_demo/mediaplayer_readme.htm new file mode 100755 index 0000000000..56e12c309e --- /dev/null +++ b/simplepie/demo/for_the_demo/mediaplayer_readme.htm @@ -0,0 +1,5 @@ +<html> +<head> +<meta http-equiv="refresh" content="0;url=http://www.jeroenwijering.com/extras/readme.html"> +</head> +</html> \ No newline at end of file diff --git a/simplepie/demo/for_the_demo/mini_podcast.png b/simplepie/demo/for_the_demo/mini_podcast.png new file mode 100644 index 0000000000000000000000000000000000000000..fd6faf2a318701ec923687afd472e5db89ffd651 GIT binary patch literal 1202 zcmV;j1Wo&iP)<h;3K|Lk000e1NJLTq002Y)000vR1^@s6DVVGM00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|A9O`nbW?9;ba!ELWdKcKV{&h8Wn^h# zAVz6&Wp{6KYjYqtwP@0K0000MbVXQnLvm$dbZKvHAXI5>WdJZSFEBGNFg8Pc<_`b> z1P4h(K~z|U<(5%s8+9DVKbKs3UDGUUdPA;ewlJ|+hry<kiq0)#!o+Pl&66)HB1E6; zgY>}%3F6bRK24+ral#N8EuCdZMQ9>}wTxzKK)a>7uEi{AZ5mtCw9DG&d`NQ1<ucjR zY~vq}knivN`~H8w@BQxXFQ}@jUSGY%$I&mjem_EdBSGm>EOJ$1N6qbgWIx06^0Qd2 zR!k-n0758rQ$2d~J?g~TZBgi>#Fp1rIG6o^*PnichK2@ACKKk^+oC^_T_&DMfQoi0 z7P;!NO(9EU@is4{Tajg%nwlEK(Aq8H_siU?k%_PWKd^|rKzK4tb8|EG_4SDVmT+W` zn<IPN)SK(Lu<!%%t;7R`cQO`@MoFbo0GQZ<!ljt=30rXfDL<E<=_R|R^6AW1oNx6L zboCo}m2!6)mdRw;+}s2}WGnBKRCKSa=_F^A6TI{5Cwv_n2H=g!54rQwFp5~gWvMza z$Qz<aGV!&NU^e$NG#{W~SWAt<#rdD`HNA=d_kNA49-q(&dan71r00mQC3G?GjUEOU zMl13QdzZ#M*L(z%p$FoMBoljiM5pDw(Zj%VXAMo3?xC5nW;6ppR77L&fOS9LL@yIO z*oXhOekNC@`M&*gc8gZRe^29&^lQQZo^c<+rF`+PP2d^#5%Y{_xFX5Kj^+Lr_>t8) z;+cfT4|Mk74fQZMKdRFSboLqay`dfk+-G&TBIUjuLaal_E9gCp831B=P^pzUH*=B6 z!{1`J)HCG%jNaQ9*ezNCm|ctKp1<0naG<lVcsH*42qtnxlFfhO3VY-yuTivDoXDlj ziZ+qLa0g1QY|t<8gy9a<Qzesg)n{n5RIkumrG9mW7!uOCgvpg@4$JKTJXyC-<6OEM z%r%)V3VW{P@Ay6aW{qaMj#t=gX<c7vquE}J=W+G)1fDBCO+T0jq14L6ULDbR!cfk% z_`QV2FYwCsN_(r+ufdS=;A}dk84~<6L`$6lz>o1UW8<RTAl!8MII$DOXWa9%k4S0` zfWV>R9rup)FnD(q;g1ef?}UyYTr8WkbaB$u(`E0XJYUyGmf|!&gc$$=-?>#~m+_6; zy1Rw<_rC>z|CfH2H&RsMRRh*Neu%EFE?h1bqSxVJU@>4wi2OB6_e8H=WVM3u4#)P+ zS&$?NQ4|3%z3V*5t_@4^uu_vxC_TVbDJHIidq%<ObYipFa)!LPubnR*@1}L-v29c6 zqrmpwv2bkc2@Wa;aJgJK91Z}4Y&NSVlS!tgrU-|_M59qMnGDswBuT>QbmDTkXlrZ3 z;cy@b0)m=bq|<4V$t0;%N;}tA^Abf7o6Uy9;lOIOA_xLN&XE7Owr#ck0iew8UF$dq Q>i_@%07*qoM6N<$f^gwQSO5S3 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/place_audio.png b/simplepie/demo/for_the_demo/place_audio.png new file mode 100644 index 0000000000000000000000000000000000000000..560ea0039310545ed1c4dcf7a1004abcd2b780af GIT binary patch literal 851 zcmV-Z1FZasP)<h;3K|Lk000e1NJLTq004pj000mO0ssI2RnIWu00003b3#c}2nYz< z;ZNWI000SaNLh0L02}=P02}=Qm(d3{0000KbVXQnLvm$dbZKvHAXI5>WdJlUH7_tW zlXA8~0000VbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_Mrm?ocW-iQb09diXwrB900OH? zL_t(oh3%KWPZMDn$3J(}f=ErHU?>n%8C+ZlR0kcn$-zjh0|O3XOe`yde?b2L`wuXX zhJ_d%8euf16FM9Ts~z;>k5g1Ea?lD?UWfMDYwzt3VrUcF@AT&TJkR%i-uL_T?y4|9 z%G1wi{dCZL<OCbP2oEaUILF;VE}m|6N9~ID8J>Sp@v0pUT8T@&^mcg|>5)dYfeG!x z#P-2%!b}=_W|MnsFAVpneERL?<5#2cYtiJl^|-N;xc(%1CDQ!f+6W#+<*b)9?0^Ls z$ns!hDm<)dujZ29*S8O?@Y-W-Ak^wk{|g*J4h|p-8L(gn(vZbd$oK<54uE}(9n&yP z0EJ**An`64?$;6@lc>-IAZGM@o${>UkeJqsYd0gNYvsFZoh21j)fgvPSLaw#?##L* zpe%(Dh}jYYC=2p|_PD8_FAz_yCT_;&U&nyx*xcCp%kyh7?5CHA=tVgZ(UnD8I%`WR zWrDSDT<U@Qgf(<(+bK<GT&fh!A!c-CIfOvm)0HKge5fmnA#!EcQrdbU1oDs*5*y;F z)wmX&42%Qu)Cyo&roY=KtuIq|zh%;ng$JPEnNm0^`Kdu-UMZo9Nfl`|GD``|j)WWt z`vH)($z2fk+OnheDV&ED_Z?%ND?~*^cV{*Ni4BHT_%8By`+~k9VEbS<VI-yXb$zbr z)tO&+QY3s@vM&2+%B1A_mSbHUpu@_Bop3jwC*2zz<5~cz4S->plYw!+w=Zex;h?s$ z^|t5@)orgf3$@22A8n-Re;Kz1rQBrWn@as?v>$E<m>Q~J{a#-*6xsNZ%0HAkI9a^h zRJb$5tw5_AX>YtRRW|oq-9_8uLq^5e<E!M4bO%jB%Hou&@MskMCxbnlk-x4xI6>?m d@n(zJ;9uZFSmaT$)Vu%y002ovPDHLkV1g28gKhu- literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/place_video.png b/simplepie/demo/for_the_demo/place_video.png new file mode 100644 index 0000000000000000000000000000000000000000..be5ec8219eb952d55d581e40b104d8a74a58af2a GIT binary patch literal 36713 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≥CC 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 ATmS$7 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/sIFR-print.css b/simplepie/demo/for_the_demo/sIFR-print.css new file mode 100644 index 0000000000..ec89b1961e --- /dev/null +++ b/simplepie/demo/for_the_demo/sIFR-print.css @@ -0,0 +1,35 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + + +/* This is the print stylesheet to hide the Flash headlines from the browser... regular browser text headlines will now print as normal */ + +.sIFR-flash { + display: none !important; + height: 0; + width: 0; + position: absolute; + overflow: hidden; +} + +.sIFR-alternate { + visibility: visible !important; + display: block !important; + position: static !important; + left: auto !important; + top: auto !important; +} \ No newline at end of file diff --git a/simplepie/demo/for_the_demo/sIFR-screen.css b/simplepie/demo/for_the_demo/sIFR-screen.css new file mode 100644 index 0000000000..778e09d2b6 --- /dev/null +++ b/simplepie/demo/for_the_demo/sIFR-screen.css @@ -0,0 +1,39 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +/*---- sIFR ---*/ +.sIFR-flash { + visibility: visible !important; + margin: 0; + padding: 0; +} + +.sIFR-replaced { + visibility: visible !important; +} + +.sIFR-alternate { + position: absolute; + left: 0; + top: 0; + width: 0; + height: 0; + display: block; + overflow: hidden; +} + +/*---- Header styling ---*/ diff --git a/simplepie/demo/for_the_demo/sifr-config.js b/simplepie/demo/for_the_demo/sifr-config.js new file mode 100644 index 0000000000..e7066b3613 --- /dev/null +++ b/simplepie/demo/for_the_demo/sifr-config.js @@ -0,0 +1,40 @@ +var yanone_kaffeesatz = { + src: './for_the_demo/yanone-kaffeesatz-bold.swf' +}; + +var lucida_grande = { + src: './for_the_demo/lucida-grande-bold.swf' +}; + +sIFR.activate(yanone_kaffeesatz); +//sIFR.activate(lucida_grande); + +sIFR.replace(yanone_kaffeesatz, { +//sIFR.replace(lucida_grande, { + + selector: 'h3.header', + wmode: 'transparent', + css: { + '.sIFR-root': { + 'text-align': 'center', + 'color': '#000000', + 'font-weight': 'bold', + 'background-color': '#EEFFEE', + + 'font-size': '50px', // For Yanone Kaffeesatz + //'font-size': '40px', // For Lucida Grande + + 'letter-spacing': '0' // For Yanone Kaffeesatz + //'letter-spacing': '-4' // For Lucida Grande + + }, + 'a': { + 'text-decoration': 'none', + 'color': '#000000' + }, + 'a:hover': { + 'text-decoration': 'none', + 'color': '#666666' + } + } +}); diff --git a/simplepie/demo/for_the_demo/sifr.js b/simplepie/demo/for_the_demo/sifr.js new file mode 100644 index 0000000000..0a8b1b6dc0 --- /dev/null +++ b/simplepie/demo/for_the_demo/sifr.js @@ -0,0 +1,19 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3, revision 245 + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +var parseSelector=(function(){var _1=/\s*,\s*/;var _2=/\s*([\s>+~(),]|^|$)\s*/g;var _3=/([\s>+~,]|[^(]\+|^)([#.:@])/g;var _4=/^[^\s>+~]/;var _5=/[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;function parseSelector(_6,_7){_7=_7||document.documentElement;var _8=_6.split(_1),_9=[];for(var i=0;i<_8.length;i++){var _b=[_7],_c=toStream(_8[i]);for(var j=0;j<_c.length;){var _e=_c[j++],_f=_c[j++],_10="";if(_c[j]=="("){while(_c[j++]!=")"&&j<_c.length){_10+=_c[j]}_10=_10.slice(0,-1)}_b=select(_b,_e,_f,_10)}_9=_9.concat(_b)}return _9}function toStream(_11){var _12=_11.replace(_2,"$1").replace(_3,"$1*$2");if(_4.test(_12)){_12=" "+_12}return _12.match(_5)||[]}function select(_13,_14,_15,_16){return (_17[_14])?_17[_14](_13,_15,_16):[]}var _18={toArray:function(_19){var a=[];for(var i=0;i<_19.length;i++){a.push(_19[i])}return a}};var dom={isTag:function(_1d,tag){return (tag=="*")||(tag.toLowerCase()==_1d.nodeName.toLowerCase())},previousSiblingElement:function(_1f){do{_1f=_1f.previousSibling}while(_1f&&_1f.nodeType!=1);return _1f},nextSiblingElement:function(_20){do{_20=_20.nextSibling}while(_20&&_20.nodeType!=1);return _20},hasClass:function(_21,_22){return (_22.className||"").match("(^|\\s)"+_21+"(\\s|$)")},getByTag:function(tag,_24){return _24.getElementsByTagName(tag)}};var _17={"#":function(_25,_26){for(var i=0;i<_25.length;i++){if(_25[i].getAttribute("id")==_26){return [_25[i]]}}return []}," ":function(_28,_29){var _2a=[];for(var i=0;i<_28.length;i++){_2a=_2a.concat(_18.toArray(dom.getByTag(_29,_28[i])))}return _2a},">":function(_2c,_2d){var _2e=[];for(var i=0,_30;i<_2c.length;i++){_30=_2c[i];for(var j=0,_32;j<_30.childNodes.length;j++){_32=_30.childNodes[j];if(_32.nodeType==1&&dom.isTag(_32,_2d)){_2e.push(_32)}}}return _2e},".":function(_33,_34){var _35=[];for(var i=0,_37;i<_33.length;i++){_37=_33[i];if(dom.hasClass([_34],_37)){_35.push(_37)}}return _35},":":function(_38,_39,_3a){return (pseudoClasses[_39])?pseudoClasses[_39](_38,_3a):[]}};parseSelector.selectors=_17;parseSelector.pseudoClasses={};parseSelector.util=_18;parseSelector.dom=dom;return parseSelector})(); +var sIFR=new function(){var _3b=this;var _3c="sIFR-active";var _3d="sIFR-replaced";var _3e="sIFR-replacing";var _3f="sIFR-flash";var _40="sIFR-ignore";var _41="sIFR-alternate";var _42="sIFR-class";var _43="sIFR-layout";var _44=6;var _45=126;var _46=8;var _47="SIFR-PREFETCHED";var _48=[10,1.55,19,1.45,32,1.35,71,1.3,1.25];var _49=5;this.isActive=false;this.isEnabled=true;this.hideElements=true;this.preserveSingleWhitespace=false;this.fixWrap=true;this.fixHover=true;this.registerEvents=true;this.setPrefetchCookie=true;this.cookiePath="/";this.domains=[];this.fromLocal=true;this.forceClear=false;this.forceWidth=false;this.fitExactly=false;this.forceTextTransform=true;this.useDomContentLoaded=true;this.debugMode=false;this.hasFlashClassSet=false;this.delayCss=false;this.callbacks=[];var _4a=0;var _4b=false,_4c=false;var dom=new function(){var _4e="http://www.w3.org/1999/xhtml";this.getBody=function(){var _4f=document.getElementsByTagName("body");if(_4f.length==1){return _4f[0]}return null};this.addClass=function(_50,_51){if(_51){_51.className=((_51.className||"")==""?"":_51.className+" ")+_50}};this.removeClass=function(_52,_53){if(_53){_53.className=_53.className.replace(new RegExp("(^|\\s)"+_52+"(\\s|$)"),"").replace(/^\s+|(\s)\s+/g,"$1")}};this.hasClass=function(_54,_55){return new RegExp("(^|\\s)"+_54+"(\\s|$)").test(_55.className)};this.hasOneOfClassses=function(_56,_57){for(var i=0;i<_56.length;i++){if(this.hasClass(_56[i],_57)){return true}}return false};this.create=function(_59){if(document.createElementNS){return document.createElementNS(_4e,_59)}return document.createElement(_59)};this.setInnerHtml=function(_5a,_5b){if(ua.innerHtmlSupport){_5a.innerHTML=_5b}else{if(ua.xhtmlSupport){_5b=["<root xmlns=\"",_4e,"\">",_5b,"</root>"].join("");var xml=(new DOMParser()).parseFromString(_5b,"text/xml");xml=document.importNode(xml.documentElement,true);while(_5a.firstChild){_5a.removeChild(_5a.firstChild)}while(xml.firstChild){_5a.appendChild(xml.firstChild)}}}};this.nodeFromHtml=function(_5d){var _5e=this.create("div");_5e.innerHTML=_5d;return _5e.firstChild};this.getComputedStyle=function(_5f,_60){var _61;if(document.defaultView&&document.defaultView.getComputedStyle){_61=document.defaultView.getComputedStyle(_5f,null)[_60]}else{if(_5f.currentStyle){_61=_5f.currentStyle[_60]}}return _61||""};this.getStyleAsInt=function(_62,_63,_64){var _65=this.getComputedStyle(_62,_63);if(_64&&!/px$/.test(_65)){return 0}_65=parseInt(_65);return isNaN(_65)?0:_65};this.getZoom=function(){return _66.zoom.getLatest()}};this.dom=dom;var ua=new function(){var ua=navigator.userAgent.toLowerCase();var _69=(navigator.product||"").toLowerCase();this.macintosh=ua.indexOf("mac")>-1;this.windows=ua.indexOf("windows")>-1;this.quicktime=false;this.opera=ua.indexOf("opera")>-1;this.konqueror=_69.indexOf("konqueror")>-1;this.ie=false/*@cc_on || true @*/;this.ieSupported=this.ie&&!/ppc|smartphone|iemobile|msie\s5\.5/.test(ua)/*@cc_on && @_jscript_version >= 5.5 @*/;this.ieWin=this.ie&&this.windows/*@cc_on && @_jscript_version >= 5.1 @*/;this.windows=this.windows&&(!this.ie||this.ieWin);this.ieMac=this.ie&&this.macintosh/*@cc_on && @_jscript_version < 5.1 @*/;this.macintosh=this.macintosh&&(!this.ie||this.ieMac);this.safari=ua.indexOf("safari")>-1;this.webkit=ua.indexOf("applewebkit")>-1&&!this.konqueror;this.khtml=this.webkit||this.konqueror;this.gecko=!this.webkit&&_69=="gecko";this.operaVersion=this.opera&&/.*opera(\s|\/)(\d+\.\d+)/.exec(ua)?parseInt(RegExp.$2):0;this.webkitVersion=this.webkit&&/.*applewebkit\/(\d+).*/.exec(ua)?parseInt(RegExp.$1):0;this.geckoBuildDate=this.gecko&&/.*gecko\/(\d{8}).*/.exec(ua)?parseInt(RegExp.$1):0;this.konquerorVersion=this.konqueror&&/.*konqueror\/(\d\.\d).*/.exec(ua)?parseInt(RegExp.$1):0;this.flashVersion=0;if(this.ieWin){var axo;var _6b=false;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(e){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");this.flashVersion=6;axo.AllowScriptAccess="always"}catch(e){_6b=this.flashVersion==6}if(!_6b){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}}}if(!_6b&&axo){this.flashVersion=parseFloat(/([\d,?]+)/.exec(axo.GetVariable("$version"))[1].replace(/,/g,"."))}}else{if(navigator.plugins&&navigator.plugins["Shockwave Flash"]){var _6c=navigator.plugins["Shockwave Flash"];this.flashVersion=parseFloat(/(\d+\.?\d*)/.exec(_6c.description)[1]);var i=0;while(this.flashVersion>=_46&&i<navigator.mimeTypes.length){var _6e=navigator.mimeTypes[i];if(_6e.type=="application/x-shockwave-flash"&&_6e.enabledPlugin.description.toLowerCase().indexOf("quicktime")>-1){this.flashVersion=0;this.quicktime=true}i++}}}this.flash=this.flashVersion>=_46;this.transparencySupport=this.macintosh||this.windows;this.computedStyleSupport=this.ie||document.defaultView&&document.defaultView.getComputedStyle&&(!this.gecko||this.geckoBuildDate>=20030624);this.css=true;if(this.computedStyleSupport){try{var _6f=document.getElementsByTagName("head")[0];_6f.style.backgroundColor="#FF0000";var _70=dom.getComputedStyle(_6f,"backgroundColor");this.css=!_70||/\#F{2}0{4}|rgb\(255,\s?0,\s?0\)/i.test(_70);_6f.style.backgroundColor="";_6f=null}catch(e){}}this.xhtmlSupport=!!window.DOMParser&&!!document.importNode;try{var n=dom.create("span");if(!this.ieMac){n.innerHTML="x"}this.innerHtmlSupport=n.innerHTML=="x"}catch(e){this.innerHtmlSupport=false}this.zoomSupport=!!(this.opera&&document.documentElement);this.geckoXml=this.gecko&&(document.contentType||"").indexOf("xml")>-1;this.requiresPrefetch=this.ieWin||this.khtml;this.verifiedKonqueror=false;this.supported=this.flash&&this.css&&(!this.ie||this.ieSupported)&&(!this.opera||this.operaVersion>=8)&&(!this.webkit||this.webkitVersion>=412)&&(!this.konqueror||this.konquerorVersion>3.5)&&this.computedStyleSupport&&(this.innerHtmlSupport||!this.khtml&&this.xhtmlSupport)};this.ua=ua;var _72=new function(){var _73={leading:true,"margin-left":true,"margin-right":true,"text-indent":true};var _74=" ";function capitalize($){return $.toUpperCase()}this.normalize=function(str){if(_3b.preserveSingleWhitespace){return str.replace(/\s/g,_74)}return str.replace(/(\s)\s+/g,"$1").replace(/\xA0/,_74)};this.textTransform=function(_77,str){switch(_77){case "uppercase":str=str.toUpperCase();break;case "lowercase":str=str.toLowerCase();break;case "capitalize":var _79=str;str=str.replace(/^\w|\s\w/g,capitalize);if(str.indexOf("function capitalize")!=-1){var _7a=_79.replace(/(^|\s)(\w)/g,"$1$1$2$2").split(/^\w|\s\w/g);str="";for(var i=0;i<_7a.length;i++){str+=_7a[i].charAt(0).toUpperCase()+_7a[i].substring(1)}}break}return str};this.toHexString=function(str){if(typeof (str)!="string"||!str.charAt(0)=="#"||str.length!=4&&str.length!=7){return str}str=str.replace(/#/,"");if(str.length==3){str=str.replace(/(.)(.)(.)/,"$1$1$2$2$3$3")}return "0x"+str};this.toJson=function(obj){var _7e="";switch(typeof (obj)){case "string":_7e="\""+obj+"\"";break;case "number":case "boolean":_7e=obj.toString();break;case "object":_7e=[];for(var _7f in obj){if(obj[_7f]==Object.prototype[_7f]){continue}_7e.push("\""+_7f+"\":"+_72.toJson(obj[_7f]))}_7e="{"+_7e.join(",")+"}";break}return _7e};this.convertCssArg=function(arg){if(!arg){return {}}if(typeof (arg)=="object"){if(arg.constructor==Array){arg=arg.join("")}else{return arg}}var obj={};var _82=arg.split("}");for(var i=0;i<_82.length;i++){var $=_82[i].match(/([^\s{]+)\s*\{(.+)\s*;?\s*/);if(!$||$.length!=3){continue}if(!obj[$[1]]){obj[$[1]]={}}var _85=$[2].split(";");for(var j=0;j<_85.length;j++){var $2=_85[j].match(/\s*([^:\s]+)\s*\:\s*([^\s;]+)/);if(!$2||$2.length!=3){continue}obj[$[1]][$2[1]]=$2[2]}}return obj};this.extractFromCss=function(css,_89,_8a,_8b){var _8c=null;if(css&&css[_89]&&css[_89][_8a]){_8c=css[_89][_8a];if(_8b){delete css[_89][_8a]}}return _8c};this.cssToString=function(arg){var css=[];for(var _8f in arg){var _90=arg[_8f];if(_90==Object.prototype[_8f]){continue}css.push(_8f,"{");for(var _91 in _90){if(_90[_91]==Object.prototype[_91]){continue}var _92=_90[_91];if(_73[_91]){_92=parseInt(_92,10)}css.push(_91,":",_92,";")}css.push("}")}return escape(css.join(""))};this.bind=function(_93,_94){return function(){_93[_94].apply(_93,arguments)}}};this.util=_72;var _66={};_66.fragmentIdentifier=new function(){this.fix=true;var _95;this.cache=function(){_95=document.title};function doFix(){document.title=_95}this.restore=function(){if(this.fix){setTimeout(doFix,0)}}};_66.synchronizer=new function(){this.isBlocked=false;this.block=function(){this.isBlocked=true};this.unblock=function(){this.isBlocked=false;_96.replaceAll()}};_66.zoom=new function(){var _97=100;this.getLatest=function(){return _97};if(ua.zoomSupport&&ua.opera){var _98=document.createElement("div");_98.style.position="fixed";_98.style.left="-65536px";_98.style.top="0";_98.style.height="100%";_98.style.width="1px";_98.style.zIndex="-32";document.documentElement.appendChild(_98);function updateZoom(){if(!_98){return}var _99=window.innerHeight/_98.offsetHeight;var _9a=Math.round(_99*100)%10;if(_9a>5){_99=Math.round(_99*100)+10-_9a}else{_99=Math.round(_99*100)-_9a}_97=isNaN(_99)?100:_99;_66.synchronizer.unblock();document.documentElement.removeChild(_98);_98=null}_66.synchronizer.block();setTimeout(updateZoom,54)}};this.hacks=_66;var _9b={kwargs:[],replaceAll:function(){for(var i=0;i<this.kwargs.length;i++){_3b.replace(this.kwargs[i])}this.kwargs=[]}};var _96={kwargs:[],replaceAll:_9b.replaceAll};function isValidDomain(){if(_3b.domains.length==0){return true}var _9d="";try{_9d=document.domain}catch(e){}if(_3b.fromLocal&&sIFR.domains[0]!="localhost"){sIFR.domains.unshift("localhost")}for(var i=0;i<_3b.domains.length;i++){var _9f=_3b.domains[i];if(_9f=="*"||_9f==_9d){return true}var _a0=_9f.lastIndexOf("*");if(_a0>-1){_9f=_9f.substr(_a0+1);var _a1=_9d.lastIndexOf(_9f);if(_a1>-1&&(_a1+_9f.length)==_9d.length){return true}}}return false}this.activate=function(){if(!ua.supported||!this.isEnabled||this.isActive||!isValidDomain()){return}if(arguments.length>0){this.prefetch.apply(this,arguments)}this.isActive=true;if(this.hideElements){this.setFlashClass()}if(ua.ieWin&&_66.fragmentIdentifier.fix&&window.location.hash!=""){_66.fragmentIdentifier.cache()}else{_66.fragmentIdentifier.fix=false}if(!this.registerEvents){return}function handler(evt){_3b.initialize();if(evt&&evt.type=="load"){if(document.removeEventListener){document.removeEventListener("DOMContentLoaded",handler,false)}if(window.removeEventListener){window.removeEventListener("load",handler,false)}}}if(window.addEventListener){if(_3b.useDomContentLoaded&&ua.gecko){document.addEventListener("DOMContentLoaded",handler,false)}window.addEventListener("load",handler,false)}else{if(ua.ieWin){if(_3b.useDomContentLoaded){document.write("<scr"+"ipt id=__sifr_ie_onload defer src=//:></script>");document.getElementById("__sifr_ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){handler();this.removeNode()}}}window.attachEvent("onload",handler)}}};this.setFlashClass=function(){if(this.hasFlashClassSet){return}dom.addClass(_3c,dom.getBody()||document.documentElement);this.hasFlashClassSet=true};this.removeFlashClass=function(){if(!this.hasFlashClassSet){return}dom.removeClass(_3c,dom.getBody());dom.removeClass(_3c,document.documentElement);this.hasFlashClassSet=false};this.initialize=function(){if(_4c||!this.isActive||!this.isEnabled){return}_4c=true;_9b.replaceAll();clearPrefetch()};function getSource(src){if(typeof (src)!="string"){if(src.src){src=src.src}if(typeof (src)!="string"){var _a4=[];for(var _a5 in src){if(src[_a5]!=Object.prototype[_a5]){_a4.push(_a5)}}_a4.sort().reverse();var _a6="";var i=-1;while(!_a6&&++i<_a4.length){if(parseFloat(_a4[i])<=ua.flashVersion){_a6=src[_a4[i]]}}src=_a6}}if(!src&&_3b.debugMode){throw new Error("sIFR: Could not determine appropriate source")}if(ua.ie&&src.charAt(0)=="/"){src=window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/,"$1$2$3")+src}return src}this.prefetch=function(){if(!ua.requiresPrefetch||!ua.supported||!this.isEnabled||!isValidDomain()){return}if(this.setPrefetchCookie&&new RegExp(";?"+_47+"=true;?").test(document.cookie)){return}try{_4b=true;if(ua.ieWin){prefetchIexplore(arguments)}else{prefetchLight(arguments)}if(this.setPrefetchCookie){document.cookie=_47+"=true;path="+this.cookiePath}}catch(e){if(_3b.debugMode){throw e}}};function prefetchIexplore(_a8){for(var i=0;i<_a8.length;i++){document.write("<script defer type=\"sifr/prefetch\" src=\""+getSource(_a8[i])+"\"></script>")}}function prefetchLight(_aa){for(var i=0;i<_aa.length;i++){new Image().src=getSource(_aa[i])}}function clearPrefetch(){if(!ua.ieWin||!_4b){return}try{var _ac=document.getElementsByTagName("script");for(var i=_ac.length-1;i>=0;i--){var _ae=_ac[i];if(_ae.type=="sifr/prefetch"){_ae.parentNode.removeChild(_ae)}}}catch(e){}}function getRatio(_af,_b0){for(var i=0;i<_b0.length;i+=2){if(_af<=_b0[i]){return _b0[i+1]}}return _b0[_b0.length-1]}function getFilters(obj){var _b3=[];for(var _b4 in obj){if(obj[_b4]==Object.prototype[_b4]){continue}var _b5=obj[_b4];_b4=[_b4.replace(/filter/i,"")+"Filter"];for(var _b6 in _b5){if(_b5[_b6]==Object.prototype[_b6]){continue}_b4.push(_b6+":"+escape(_72.toJson(_72.toHexString(_b5[_b6]))))}_b3.push(_b4.join(","))}return _b3.join(";")}function calculate(_b7){var _b8,_b9;if(!ua.ie){_b8=dom.getStyleAsInt(_b7,"lineHeight");_b9=Math.floor(dom.getStyleAsInt(_b7,"height")/_b8)}else{if(ua.ie){var _ba=_b7.innerHTML;_b7.style.visibility="visible";_b7.style.overflow="visible";_b7.style.position="static";_b7.style.zoom="normal";_b7.style.writingMode="lr-tb";_b7.style.width=_b7.style.height="auto";_b7.style.maxWidth=_b7.style.maxHeight=_b7.style.styleFloat="none";var _bb=_b7;var _bc=_b7.currentStyle.hasLayout;if(_bc){dom.setInnerHtml(_b7,"<div class=\""+_43+"\">X<br />X<br />X</div>");_bb=_b7.firstChild}else{dom.setInnerHtml(_b7,"X<br />X<br />X")}var _bd=_bb.getClientRects();_b8=_bd[1].bottom-_bd[1].top;_b8=Math.ceil(_b8*0.8);if(_bc){dom.setInnerHtml(_b7,"<div class=\""+_43+"\">"+_ba+"</div>");_bb=_b7.firstChild}else{dom.setInnerHtml(_b7,_ba)}_bd=_bb.getClientRects();_b9=_bd.length;if(_bc){dom.setInnerHtml(_b7,_ba)}_b7.style.visibility=_b7.style.width=_b7.style.height=_b7.style.maxWidth=_b7.style.maxHeight=_b7.style.overflow=_b7.style.styleFloat=_b7.style.position=_b7.style.zoom=_b7.style.writingMode=""}}return {lineHeight:_b8,lines:_b9}}this.replace=function(_be,_bf){if(!ua.supported){return}if(_bf){for(var _c0 in _be){if(typeof (_bf[_c0])=="undefined"){_bf[_c0]=_be[_c0]}}_be=_bf}if(!_4c){return _9b.kwargs.push(_be)}if(_66.synchronizer.isBlocked){return _96.kwargs.push(_be)}var _c1=_be.elements;if(!_c1&&parseSelector){_c1=parseSelector(_be.selector)}if(_c1.length==0){return}this.setFlashClass();var src=getSource(_be.src);var css=_72.convertCssArg(_be.css);var _c4=getFilters(_be.filters);var _c5=(_be.forceClear==null)?_3b.forceClear:_be.forceClear;var _c6=(_be.fitExactly==null)?_3b.fitExactly:_be.fitExactly;var _c7=_c6||(_be.forceWidth==null?_3b.forceWidth:_be.forceWidth);var _c8=parseInt(_72.extractFromCss(css,".sIFR-root","leading"))||0;var _c9=_72.extractFromCss(css,".sIFR-root","font-size",true)||0;var _ca=_72.extractFromCss(css,".sIFR-root","background-color",true)||"#FFFFFF";var _cb=_72.extractFromCss(css,".sIFR-root","kerning",true)||"";var _cc=_be.gridFitType||_72.extractFromCss(css,".sIFR-root","text-align")=="right"?"subpixel":"pixel";var _cd=_3b.forceTextTransform?_72.extractFromCss(css,".sIFR-root","text-transform",true)||"none":"none";var _ce=_72.extractFromCss(css,".sIFR-root","opacity",true)||"100";var _cf=_be.pixelFont||false;var _d0=_be.ratios||_48;if(parseInt(_c9).toString()!=_c9&&_c9.indexOf("px")==-1){_c9=0}else{_c9=parseInt(_c9)}if(parseFloat(_ce)<1){_ce=100*parseFloat(_ce)}var _d1=null;var _d2="";if(_c6){_72.extractFromCss(css,".sIFR-root","text-align",true)}if(!_be.modifyCss){_d2=_72.cssToString(css);_d1=_3b.fixHover&&_d2.indexOf("%3Ahover")>-1}var _d3=!ua.opera&&_3b.delayCss;var _d4=_be.wmode||"";if(!_d4){if(_be.transparent){_d4="transparent"}else{if(_be.opaque){_d4="opaque"}}}if(_d4=="transparent"){if(!ua.transparencySupport){_d4="opaque"}else{_ca="transparent"}}for(var i=0;i<_c1.length;i++){var _d6=_c1[i];if(!ua.verifiedKonqueror){if(dom.getComputedStyle(_d6,"lineHeight").match(/e\+08px/)){ua.supported=_3b.isEnabled=false;this.removeFlashClass();return}ua.verifiedKonqueror=true}if(dom.hasOneOfClassses([_3d,_3e,_40,_41],_d6)){continue}var _d7=_d6.offsetHeight;var _d8=_d6.offsetWidth;var _d9=dom.getComputedStyle(_d6,"display");if(!_d7||!_d8||_d9==null||_d9=="none"){continue}if(_c5&&ua.gecko){_d6.style.clear="both"}var _da=null;if(_3b.fixWrap&&ua.ie&&_d9=="block"){_da=_d6.innerHTML;dom.setInnerHtml(_d6,"X")}_d8=dom.getStyleAsInt(_d6,"width",ua.ie);if(_d8==0){var _db=dom.getStyleAsInt(_d6,"paddingRight",true);var _dc=dom.getStyleAsInt(_d6,"paddingLeft",true);var _dd=dom.getStyleAsInt(_d6,"borderRightWidth",true);var _de=dom.getStyleAsInt(_d6,"borderLeftWidth",true);_d8=_d6.offsetWidth-_dc-_db-_de-_dd}if(_da&&_3b.fixWrap&&ua.ie){dom.setInnerHtml(_d6,_da)}var _df,_e0;if(!_c9){var _e1=calculate(_d6);_df=Math.min(_45,Math.max(_44,_e1.lineHeight));if(_cf){_df=Math.max(8,8*Math.round(_df/8))}_e0=_e1.lines;if(isNaN(_e0)||!isFinite(_e0)||_e0==0){_e0=1}if(_e0>1&&_c8){_d7+=Math.round((_e0-1)*_c8)}}else{_df=_c9;_e0=1}_d7=Math.round(_e0*_df);if(_c5&&ua.gecko){_d6.style.clear=""}var _e2=dom.create("span");_e2.className=_41;var _e3=_d6.cloneNode(true);for(var j=0,l=_e3.childNodes.length;j<l;j++){_e2.appendChild(_e3.childNodes[j].cloneNode(true))}if(_be.modifyContent){_be.modifyContent(_e3,_be.selector)}if(_be.modifyCss){_d2=_be.modifyCss(css,_e3,_be.selector)}if(_d1==null){_d1=_3b.fixHover&&_d2.indexOf("%3Ahover")>-1}var _e6=handleContent(_e3,_cd);if(_be.modifyContentString){_e6=_be.modifyContentString(_e6,_be.selector)}if(_e6==""){continue}var _e7=["content="+_e6,"width="+_d8,"height="+_d7,"fitexactly="+(_c6?"true":""),"tunewidth="+(_be.tuneWidth||""),"tuneheight="+(_be.tuneHeight||""),"offsetleft="+(_be.offsetLeft||""),"offsettop="+(_be.offsetTop||""),"thickness="+(_be.thickness||""),"sharpness="+(_be.sharpness||""),"kerning="+_cb,"gridfittype="+_cc,"zoomsupport="+ua.zoomSupport,"flashfilters="+_c4,"opacity="+_ce,"blendmode="+(_be.blendMode||""),"size="+_df,"zoom="+dom.getZoom(),"css="+_d2,"selectable="+(_be.selectable==null?"true":_be.selectable),"lines="+_e0];var _e8=encodeURI(_e7.join("&"));var _e9="sIFR_callback_"+_4a++;var _ea=new CallbackInfo(_e9,_e7,_be.onReplacement,_d1);window[_e9+"_DoFSCommand"]=(function(_eb){return function(_ec,arg){_eb.handle(_ec,arg)}})(_ea);_d7=Math.round(_e0*getRatio(_df,_d0)*_df)+_49;var _ee=_c7?_d8:"100%";var _ef;if(ua.ie){_ef=["<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"",_e9,"\" sifr=\"true\" width=\"",_ee,"\" height=\"",_d7,"\" class=\"",_3f,"\">","<param name=\"movie\" value=\"",src,"\"></param>","<param name=\"flashvars\" value=\"",_e8,"\"></param>","<param name=\"allowScriptAccess\" value=\"always\"></param>","<param name=\"quality\" value=\"best\"></param>","<param name=\"wmode\" value=\"",_d4,"\"></param>","<param name=\"bgcolor\" value=\"",_ca,"\"></param>","<param name=\"name\" value=\"",_e9,"\"></param>","</object>","<scr","ipt event=FSCommand(info,args) for=",_e9,">",_e9,"_DoFSCommand(info, args);","</","script>"].join("")}else{_ef=["<embed type=\"application/x-shockwave-flash\"",(_d3?" class=\""+_3f+"\"":"")," src=\"",src,"\" quality=\"best\" flashvars=\"",_e8,"\" width=\"",_ee,"\" height=\"",_d7,"\" wmode=\"",_d4,"\" bgcolor=\"",_ca,"\" name=\"",_e9,"\" id=\"",_e9,"\" allowScriptAccess=\"always\" sifr=\"true\"></embed>"].join("")}dom.setInnerHtml(_d6,_ef);_ea.flashNode=_d6.firstChild;_ea.html=_ef;_3b.callbacks.push(_ea);if(_be.selector){if(!_3b.callbacks[_be.selector]){_3b.callbacks[_be.selector]=[_ea]}else{_3b.callbacks[_be.selector].push(_ea)}}_d6.appendChild(_e2);dom.addClass(_d3?_3e:_3d,_d6);_ea.setupFixHover()}_66.fragmentIdentifier.restore()};this.getCallbackByFlashElement=function(_f0){for(var i=0;i<_3b.callbacks.length;i++){if(_3b.callbacks[i].id==_f0.getAttribute("id")){return _3b.callbacks[i]}}};function handleContent(_f2,_f3){var _f4=[],_f5=[];var _f6=_f2.childNodes;var i=0;while(i<_f6.length){var _f8=_f6[i];if(_f8.nodeType==3){var _f9=_72.normalize(_f8.nodeValue);_f9=_72.textTransform(_f3,_f9);_f5.push(_f9.replace(/\%/g,"%25").replace(/\&/g,"%26").replace(/\,/g,"%2C").replace(/\+/g,"%2B"))}if(_f8.nodeType==1){var _fa=[];var _fb=_f8.nodeName.toLowerCase();var _fc=_f8.className||"";if(/\s+/.test(_fc)){if(_fc.indexOf(_42)>-1){_fc=_fc.match("(\\s|^)"+_42+"-([^\\s$]*)(\\s|$)")[2]}else{_fc=_fc.match(/^([^\s]+)/)[1]}}if(_fc!=""){_fa.push("class=\""+_fc+"\"")}if(_fb=="a"){var _fd=_f8.getAttribute("href")||"";var _fe=_f8.getAttribute("target")||"";_fa.push("href=\""+_fd+"\"","target=\""+_fe+"\"")}_f5.push("<"+_fb+(_fa.length>0?" ":"")+escape(_fa.join(" "))+">");if(_f8.hasChildNodes()){_f4.push(i);i=0;_f6=_f8.childNodes;continue}else{if(!/^(br|img)$/i.test(_f8.nodeName)){_f5.push("</",_f8.nodeName.toLowerCase(),">")}}}if(_f4.length>0&&!_f8.nextSibling){do{i=_f4.pop();_f6=_f8.parentNode.parentNode.childNodes;_f8=_f6[i];if(_f8){_f5.push("</",_f8.nodeName.toLowerCase(),">")}}while(i==_f6.length-1&&_f4.length>0)}i++}return _f5.join("").replace(/\n|\r/g,"")}function CallbackInfo(id,vars,_101,_102){this.id=id;this.vars=vars;this._replacementHandler=_101;this._firedReplacementEvent=!(this._replacementHandler!=null);this._fixHover=_102;this._setClasses=!_3b.delayCss;this.html="";this._pings=0}CallbackInfo.prototype.getFlashElement=function(){return document.getElementById(this.id)};CallbackInfo.prototype.handle=function(info,arg){if(/(FSCommand\:)?resize/.test(info)){var _105=this.getFlashElement();var $=arg.split(/\:|,/);_105.setAttribute($[0],$[1]);if($.length>2){_105.setAttribute($[2],$[3])}if(!this._setClasses){if(!ua.ie&&!ua.opera){dom.addClass(_3f,_105)}dom.removeClass(_3e,_105.parentNode);dom.addClass(_3d,_105.parentNode);this._setClasses=true}if(ua.khtml){var _107=_105.offsetHeight}if(!this._firedReplacementEvent){this._replacementHandler(this);this._firedReplacementEvent=true}}else{if(/(FSCommand\:)?resetmovie/.test(info)){this.resetMovie()}else{if(/(FSCommand\:)?ping/.test(info)){if(this._pings>0){this.setupFixHover()}this._pings++}else{if(this.debugHandler&&/(FSCommand\:)?debug/.test(info)){this.debugHandler(info,arg)}}}}};CallbackInfo.prototype.call=function(type,_109){var _10a=this.getFlashElement();if(!_10a){return}_10a.SetVariable("callbackType",type);_10a.SetVariable("callbackValue",_109);_10a.SetVariable("callbackTrigger",true)};CallbackInfo.prototype.replaceText=function(_10b){_10b=escape(_10b);this.call("replacetext",_10b);this.vars[0]="content="+_10b;this.html=this.html.replace(/(flashvars(=|\"\svalue=)\")[^\"]+/,"$1"+encodeURI(this.vars.join("&")))};CallbackInfo.prototype.resetMovie=function(){var _10c=this.getFlashElement();var node=_10c.parentNode;node.replaceChild(dom.nodeFromHtml(this.html),_10c);this.setupFixHover()};CallbackInfo.prototype.setupFixHover=function(){var _10e=this.getFlashElement();if(!this._fixHover||!_10e){return}var node=_10e.parentNode;if(node.addEventListener){node.addEventListener("mouseout",_72.bind(this,"fixHover"),false)}else{if(node.attachEvent){node.attachEvent("onmouseout",_72.bind(this,"fixHover"))}}};CallbackInfo.prototype.fixHover=function(){this.call("resettext")}}; \ No newline at end of file diff --git a/simplepie/demo/for_the_demo/simplepie.css b/simplepie/demo/for_the_demo/simplepie.css new file mode 100644 index 0000000000..3753cb96de --- /dev/null +++ b/simplepie/demo/for_the_demo/simplepie.css @@ -0,0 +1,397 @@ +/* +Theme Name: SimplePie +Theme URI: http://simplepie.org +Description: A simple, yet beautiful theme inspired by several cleanly designed websites. +Version: 1.4 +Author: Ryan Parman +Author URI: http://skyzyx.com +Updated: 21 June 2007 +*/ + + +/********************************************* +HYPERLINK STYLES +*********************************************/ +a { + color:#369; + text-decoration:underline; + padding:0 1px; +} + +a:hover { + color:#fff !important; + background-color:#333; + text-decoration:none; + padding:0 1px; +} + +a.nohover { + text-decoration:none; + border:none; +} + +a.nohover:hover { + background-color:transparent; + border:none; +} + +a.namelink { + padding:0; + margin:0; + overflow:hidden; + height:1px; +} + +h4 a, +.sample_feeds a { + color:#000; +} + + +/********************************************* +GENERAL STYLES +*********************************************/ +body { + /*font:12px/18px Verdana, sans-serif;*/ + font:14px/1.5em "Lucida Grande", Tahoma, sans-serif; + letter-spacing:0px; + color:#333; + background-color:#fff; + margin:0; + padding:0; +} + +div#site { + width:600px; + margin:50px auto 0 auto; +} + +h1#logo { + margin:0; + padding:0; + text-align:center; +} + +h1#logo a, +h1#logo a:hover { + background-color:transparent; + text-decoration:none; + padding:0; +} + +h2.image { + margin:0; + padding:0; + text-align:center; +} + +h3 { + margin:20px 0 0 0; + padding:0; + font-size:1.5em; +} + +h4 { + margin:20px 0 0 0; + padding:0; + font-size:1.2em; + letter-spacing:-1px; +} + +h5 { + margin:10px 0 0 0; + padding:0; + font-size:1em; + font-weight:bold; +} + +em { + font-style:normal; + background-color:#ffc; +} + +p { + margin:0; + padding:5px 0; +} + +ul, ol { + margin:10px 0 10px 20px; + padding:0 0 0 15px; +} + +ul li, ol li { + margin:0 0 7px 0; + padding:0 0 0 3px; +} + +form { + margin:0; + padding:0; +} + +code { + font-size:1em; + background-color:#f3f3ff; + color:#000; +} + +div#site pre { + background-color:#f3f3ff; + color:#000080; + border:1px dotted #000080; + overflow:auto; + padding:3px 5px; +} + +blockquote { + font-size:1em; + color:#666; + border-left:4px solid #666; + margin:10px 0 10px 30px; + padding:0 5px 0 10px; + background:#f3f3f3 url(background_blockquote.png) repeat top left; +} + +input, select, textarea { + font-size:12px; + line-height:1.2em; + padding:2px; +} + +input[type=text], select, textarea { + background-color:#e9f5ff; + border:1px solid #333; +} + +input[type=text]:focus, select:focus, textarea:focus { + background-color:#ffe; +} + +.clearLeft {clear:left;} +.clearRight {clear:right;} +.clearBoth {clear:both;} +.hide {display:none;} + + +/********************************************* +NAVIGATION STYLES +*********************************************/ +div#header { + background:#fff url(top_gradient.gif) repeat-x top left; + margin:0; + padding:0; +} + +div#header form { + margin:0; + padding:0; +} + +div#header div#headerInner { + margin:0; + padding:0; +} + +div#header div#headerInner div#logoContainer {} + +div#header div#headerInner div#logoContainerInner { + width:550px; + margin:0 auto; + padding:20px; +} + +div#header div#headerInner div#logoContainer div#logo { + float:left; + width:200px; +} + +div#header div#headerInner div#logoContainer div#logo a, +div#header div#headerInner div#logoContainer div#logo a:hover { + border:none; + background:none; +} + +div#header div#headerInner div#logoContainer div#feed { + float:right; + width:300px; + text-align:right; + padding:10px 0 0 0; +} + +div#header div#headerInner div#logoContainer div#feed input.text { + width:60%; +} + +div#header div#headerInner div#menu { + background:#eee url(background_menuitem_shadow.gif) repeat-x top left; + border-top:2px solid #ccc; + border-bottom:1px solid #ddd; + text-align:center; +} + +div#header div#headerInner div#menu table { + width:auto; + margin:0 auto; +} + +div#header div#headerInner div#menu ul { + display:block; + width:100%; + margin:0 auto; + padding:0; + font-size:12px; +} + +div#header div#headerInner div#menu ul li { + display:block; + float:left; +} + +div#header div#headerInner div#menu ul li a { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#666 !important; + background-color:transparent; +} + +div#header div#headerInner div#menu ul li a:hover { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#666; + background:#fff url(background_menuitem_off.gif) no-repeat bottom right; +} + +body#bodydemo div#header div#headerInner div#menu ul li#demo a { + display:block; + margin:-2px 0 0 0; + padding:5px 7px 8px 7px; + text-decoration:none; + color:#333; + font-weight:bold; + background:#fff url(background_menuitem.gif) no-repeat bottom right; +} + + +/********************************************* +CONTENT STYLES +*********************************************/ +div.chunk { + margin:20px 0 0 0; + padding:0 0 10px 0; + border-bottom:1px solid #ccc; +} + +div.topchunk { + margin:0 !important; +} + +.footnote, +.footnote a { + font-size:12px; + line-height:1.3em; + color:#aaa; +} + +.footnote em { + background-color:transparent; + font-style:italic; +} + +.footnote code { + background-color:transparent; + font:11px/14px monospace; + color:#aaa; +} + +p.subscribe { + background-color:#f3f3f3; + font-size:12px; + text-align:center; +} + +p.highlight { + background-color:#ffc; + font-size:12px; + text-align:center; +} + +p.sample_feeds { + font-size:12px; + line-height:1.2em; +} + +div.sp_errors { + background-color:#eee; + padding:5px; + text-align:center; + font-size:12px; +} + +.noborder { + border:none !important; +} + +img.favicon { + margin:0 4px -2px 0; + width:16px; + height:16px; +} + +p.favicons a, +p.favicons a:hover { + border:none; + background-color:transparent; +} + +p.favicons img { + border:none; +} + + +/********************************************* +DEMO STYLES +*********************************************/ +div#sp_input { + background-color:#ffc; + border:2px solid #f90; + padding:5px; + text-align:center; +} + +div#sp_input input.text { + border:1px solid #999; + background:#e9f5ff url(feed.png) no-repeat 4px 50%; + width:75%; + padding:2px 2px 2px 28px; + font:18px/22px "Lucida Grande", Verdana, sans-serif; + font-weight:bold; + letter-spacing:-1px; +} + +form#sp_form { + margin:15px 0; +} + +div.focus { + margin:0; + padding:10px 20px; + background-color:#efe; +} + +p.sample_feeds { + text-align:justify; +} + + +/********************************************* +SIFR STYLES +*********************************************/ +.sIFR-active h3.header { + visibility:hidden; + line-height:1em; +} diff --git a/simplepie/demo/for_the_demo/sleight.js b/simplepie/demo/for_the_demo/sleight.js new file mode 100644 index 0000000000..4b5058e9a6 --- /dev/null +++ b/simplepie/demo/for_the_demo/sleight.js @@ -0,0 +1,31 @@ +/********************************************************** +Sleight +(c) 2001, Aaron Boodman +http://www.youngpup.net +**********************************************************/ + +if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) +{ + document.writeln('<style type="text/css">img { visibility:hidden; } </style>'); + window.attachEvent("onload", fnLoadPngs); +} + +function fnLoadPngs() +{ + var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, ''); + var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5); + + for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) + { + if (itsAllGood && img.src.match(/\.png$/i) != null) + { + var src = img.src; + var div = document.createElement("DIV"); + div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')" + div.style.width = img.width + "px"; + div.style.height = img.height + "px"; + img.replaceNode(div); + } + img.style.visibility = "visible"; + } +} diff --git a/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png b/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png new file mode 100644 index 0000000000000000000000000000000000000000..2bfd87d0ce14c424fd3b72377b085bb0b1510bd1 GIT binary patch literal 39177 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png b/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png new file mode 100644 index 0000000000000000000000000000000000000000..d0629769cfec742664ec0b739d93ebf4418d15e9 GIT binary patch literal 115826 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�yvwvr{%euJem^4Qq_AqbXR}PnKcoLJNe#h#<$N7 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 Y{xKQOm;9p6g#iC3$f!!!Nt%cL4}oKrIsgCw literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as new file mode 100644 index 0000000000..6a98ca5522 --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as @@ -0,0 +1,71 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +import TextField.StyleSheet; + +class SifrStyleSheet extends TextField.StyleSheet { + public var fontSize; + public var latestLeading = 0; + + public function parseCSS(cssText:String) { + var native = new TextField.StyleSheet(); + var parsed = native.parseCSS(cssText); + + if(!parsed) return false; + + var selectors = native.getStyleNames(); + for(var i = selectors.length - 1; i >= 0; i--) { + var selector = selectors[i]; + var nativeStyle = native.getStyle(selector); + var style = this.getStyle(selector) || nativeStyle; + if(style != nativeStyle) { + for(var property in nativeStyle) style[property] = nativeStyle[property]; + } + this.setStyle(selector, style); + } + + return true; + } + + // Apply leading to the textFormat. Much thanks to <http://www.blog.lessrain.com/?p=98>. + private function applyLeading(format, leading) { + this.latestLeading = leading; + + if(leading >= 0) { + format.leading = leading; + return format; + } + + // Workaround for negative leading, which is ignored otherwise. + var newFormat = new TextFormat(null, null, null, null, null, null, null, null, null, null, null, null, leading); + for(var property in format) if(property != 'leading') newFormat[property] = format[property]; + + return newFormat; + } + + public function transform(style) { + var format = super.transform(style); + if(style.leading) format = applyLeading(format, style.leading); + if(style.letterSpacing) format.letterSpacing = style.letterSpacing; + // Support font sizes relative to the size of .sIFR-root. + if(this.fontSize && style.fontSize && style.fontSize.indexOf('%')) { + format.size = this.fontSize * parseInt(style.fontSize) / 100; + } + format.kerning = _root.kerning == 'true' || !(_root.kerning == 'false') || sIFR.defaultKerning; + return format; + } +} \ No newline at end of file diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt b/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt new file mode 100644 index 0000000000..2b9d32d202 --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt @@ -0,0 +1,12 @@ +This is a pre-release nightly of sIFR 3 (r245 to be exact). We (the SimplePie team) will be updating the +sIFR code and font files from time to time as new releases of sIFR 3 are made available. + +In this folder you'll find a few Flash 8 files. The only one of you might want to mess with is sifr.fla. + * Open it up + * Double-click the rectangle in the middle + * Select all + * Change the font + +More information about sIFR 3 can be found here: + * http://dev.novemberborn.net/sifr3/ + * http://wiki.novemberborn.net/sifr3/ \ No newline at end of file diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as new file mode 100644 index 0000000000..4d371954bc --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as @@ -0,0 +1,12 @@ +// MTASC only parses as-files with class definitions, so here goes... +class Options { + public static function apply() { + sIFR.fromLocal = true; + sIFR.domains = ['*']; + + // Parsing `p.foo` might not work, see: <http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001766.html> + // Appearantly you have to use hex color codes as well, names are not supported! + + sIFR.styles.parseCSS('.foo { text-decoration: underline; }'); + } +} diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as new file mode 100644 index 0000000000..4902e003f3 --- /dev/null +++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as @@ -0,0 +1,359 @@ +/*=:project + scalable Inman Flash Replacement (sIFR) version 3. + + =:file + Copyright: 2006 Mark Wubben. + Author: Mark Wubben, <http://novemberborn.net/> + + =:history + * IFR: Shaun Inman + * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin + * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben + + =:license + This software is licensed and provided under the CC-GNU LGPL. + See <http://creativecommons.org/licenses/LGPL/2.1/> +*/ + +import SifrStyleSheet; + +class sIFR { + public static var DEFAULT_TEXT = 'Rendered with sIFR 3, revision 245'; + public static var CSS_ROOT_CLASS = 'sIFR-root'; + public static var DEFAULT_WIDTH = 300; + public static var DEFAULT_HEIGHT = 100; + public static var DEFAULT_ANTI_ALIAS_TYPE = 'advanced'; + public static var MARGIN_LEFT = -3; + public static var PADDING_BOTTOM = 5; // Extra padding to make sure the movie is high enough in most cases. + public static var LEADING_REMAINDER = 2; // Flash uses the specified leading minus 2 as the applied leading. + + public static var MAX_FONT_SIZE = 126; + public static var ALIASING_MAX_FONT_SIZE = 48; + + //= Holds CSS properties and other rendering properties for the Flash movie. + // *Don't overwrite!* + public static var styles:SifrStyleSheet = new SifrStyleSheet(); + //= Allow sIFR to be run from localhost + public static var fromLocal:Boolean = true; + //= Array containing domains for which sIFR may render text. Used to prevent + // hotlinking. Use `*` to allow all domains. + public static var domains:Array = []; + //= Whether kerning is enabled by default. This can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002811.html>. + public static var defaultKerning:Boolean = true; + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002788.html>. + public static var defaultSharpness:Number = 0; + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002787.html>. + public static var defaultThickness:Number = 0; + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002732.html>. + public static var defaultOpacity:Number = -1; // Use client settings + //= Default value which can be overriden from the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002788.html>. + public static var defaultBlendMode:Number = -1; // Use cliest settings + //= Overrides the grid fit type as defined on the client side. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002444.html>. + public static var enforcedGridFitType:String = null; + //= If `true` sIFR won't override the anti aliasing set in the Flash IDE when exporting. + // Thickness and sharpness won't be affected either. + public static var preserveAntiAlias:Boolean = false; + //= If `true` sIFR will disable anti-aliasing if the font size is larger than `ALIASING_MAX_FONT_SIZE`. + // This setting is *independent* from `preserveAntiAlias`. + public static var conditionalAntiAlias:Boolean = true; + //= Sets the anti alias type. By default it's `DEFAULT_ANTI_ALIAS_TYPE`. + // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002733.html>. + public static var antiAliasType:String = null; + //= Flash filters can be added to this array and will be applied to the text field. + public static var filters:Array = []; + //= A mapping from the names of the filters to their actual objecs, used when transforming + // filters defined on the client. You can add additional filters here so they'll be supported + // when defined on the client. + public static var filterMap:Object = { + DisplacementMapFilter : flash.filters.DisplacementMapFilter, + ColorMatrixFilter : flash.filters.ColorMatrixFilter, + ConvolutionFilter : flash.filters.ConvolutionFilter, + GradientBevelFilter : flash.filters.GradientBevelFilter, + GradientGlowFilter : flash.filters.GradientGlowFilter, + BevelFilter : flash.filters.BevelFilter, + GlowFilter : flash.filters.GlowFilter, + BlurFilter : flash.filters.BlurFilter, + DropShadowFilter : flash.filters.DropShadowFilter + }; + + private static var instance; + + private var textField; + private var content; + private var realHeight; + private var originalHeight; + private var currentHeight; + private var fontSize; + private var tuneWidth; + private var tuneHeight; + + + + //= Sets the default styles for `sIFR.styles`. This method is called + // directly in `sifr.fla`, before options are applied. + public static function setDefaultStyles() { + sIFR.styles.parseCSS([ + '.', CSS_ROOT_CLASS, ' { color: #000000; }', + 'strong { display: inline; font-weight: bold; } ', + 'em { display: inline; font-style: italic; }', + 'a { color: #0000FF; text-decoration: underline; }', + 'a:hover { color: #0000FF; text-decoration: none; }' + ].join('')); + } + + //= Validates the domain sIFR is being used on. + // Returns `true` if the domain is valid, `false` otherwise. + public static function checkDomain():Boolean { + if(sIFR.domains.length == 0) return true; + + var domain = (new LocalConnection()).domain(); + if(sIFR.fromLocal) sIFR.domains.push('localhost'); + + for(var i = 0; i < sIFR.domains.length; i++) { + var match = sIFR.domains[i]; + if(match == '*' || match == domain) return true; + + var wildcard = match.lastIndexOf('*'); + if(wildcard > -1) { + match = match.substr(wildcard + 1); + var matchPosition = domain.lastIndexOf(match); + if(matchPosition > -1 && (matchPosition + match.length) == domain.length) return true; + } + } + + return false; + } + + //= Runs sIFR. Called automatically. + public static function run() { + var holder = _root.holder; + var content = checkDomain() ? unescape(_root.content) : DEFAULT_TEXT + if(content == 'undefined' || content == '') { + content = DEFAULT_TEXT; + fscommand('resetmovie', ''); + } else fscommand('ping', ''); + + // Sets stage parameters + Stage.scaleMode = 'noscale'; + Stage.align = 'TL'; + Stage.showMenu = false; + + // Other parameters + var opacity = parseInt(_root.opacity); + if(!isNaN(opacity)) holder._alpha = sIFR.defaultOpacity == -1 ? opacity : sIFR.defaultOpacity; + else holder._alpha = 100; + _root.blendMode = sIFR.defaultBlendMode == -1 ? _root.blendmode : sIFR.defaultBlendMode; + + sIFR.instance = new sIFR(holder.txtF, content); + // This should ignore resizes from the callback. Disabled for now. +/* if(_root.zoomsupport == 'true') Stage.addListener({onResize: function() { sIFR.instance.scale() }});*/ + + // Setup callbacks + _root.watch('callbackTrigger', function() { + sIFR.callback(); + return false; + }); + } + + private static function eval(str) { + var as; + + if(str.charAt(0) == '{') { // Ah, we need to create an object + as = {}; + str = str.substring(1, str.length - 1); + var $ = str.split(','); + for(var i = 0; i < $.length; i++) { + var $1 = $[i].split(':'); + as[$1[0]] = sIFR.eval($1[1]); + } + } else if(str.charAt(0) == '"') { // String + as = str.substring(1, str.length - 1); + } else if(str == 'true' || str == 'false') { // Boolean + as = str == 'true'; + } else { // Float + as = parseFloat(str); + } + + return as; + } + + private function applyFilters() { + var $filters = this.textField.filters; + $filters = $filters.concat(sIFR.filters); + + var $ = _root.flashfilters.split(';'); // name,prop:value,...; + for(var i = 0; i < $.length; i++) { + var $1 = $[i].split(','); + + var newFilter = new sIFR.filterMap[$1[0]](); + for(var j = 1; j < $1.length; j++) { + var $2 = $1[j].split(':'); + newFilter[$2[0]] = sIFR.eval(unescape($2[1])); + } + + $filters.push(newFilter); + } + + this.textField.filters = $filters; + } + + private function sIFR(textField, content) { + this.textField = textField; + this.content = content; + + var offsetLeft = parseInt(_root.offsetleft); + textField._x = MARGIN_LEFT + (isNaN(offsetLeft) ? 0 : offsetLeft); + var offsetTop = parseInt(_root.offsettop); + if(!isNaN(offsetTop)) textField._y += offsetTop; + + tuneWidth = parseInt(_root.tunewidth); + if(isNaN(tuneWidth)) tuneWidth = 0; + tuneHeight = parseInt(_root.tuneheight); + if(isNaN(tuneHeight)) tuneHeight = 0; + + textField._width = tuneWidth + (isNaN(parseInt(_root.width)) ? DEFAULT_WIDTH : parseInt(_root.width)); + textField._height = tuneHeight + (isNaN(parseInt(_root.height)) ? DEFAULT_HEIGHT : parseInt(_root.height)); + textField.wordWrap = true; + textField.selectable = _root.selectable == 'true'; + textField.gridFitType = sIFR.enforcedGridFitType || _root.gridfittype; + this.applyFilters(); + + // Determine font-size and the number of lines + this.fontSize = parseInt(_root.size); + if(isNaN(this.fontSize)) this.fontSize = 26; + styles.fontSize = this.fontSize; + + if(!sIFR.preserveAntiAlias && (sIFR.conditionalAntiAlias && this.fontSize < ALIASING_MAX_FONT_SIZE + || !sIFR.conditionalAntiAlias)) { + textField.antiAliasType = sIFR.antiAliasType || DEFAULT_ANTI_ALIAS_TYPE; + } + + if(!sIFR.preserveAntiAlias || !isNaN(parseInt(_root.sharpness))) { + textField.sharpness = parseInt(_root.sharpness); + } + if(isNaN(textField.sharpness)) textField.sharpness = sIFR.defaultSharpness; + + if(!sIFR.preserveAntiAlias || !isNaN(parseInt(_root.thickness))) { + textField.thickness = parseInt(_root.thickness); + } + if(isNaN(textField.thickness)) textField.thickness = sIFR.defaultThickness; + + // Set font-size and other styles + sIFR.styles.parseCSS(unescape(_root.css)); + + var rootStyle = styles.getStyle('.sIFR-root') || {}; + rootStyle.fontSize = this.fontSize; // won't go higher than 126! + styles.setStyle('.sIFR-root', rootStyle); + textField.styleSheet = styles; + + this.write(content); + this.repaint(); + } + + private function repaint() { + var leadingFix = this.isSingleLine() ? sIFR.styles.latestLeading : 0; + if(leadingFix > 0) leadingFix -= LEADING_REMAINDER; + + // Flash wants to scroll the movie by one line, by adding the fontSize to the + // textField height this is no longer happens. We also add the absolute tuneHeight, + // to prevent a negative value from triggering the bug. We won't send the fake + // value to the JavaScript side, though. + textField._height = textField.textHeight + PADDING_BOTTOM + this.fontSize + Math.abs(tuneHeight) + tuneHeight - leadingFix; + this.realHeight = textField._height - this.fontSize - Math.abs(tuneHeight); + var arg = 'height:' + this.realHeight; + if(_root.fitexactly == 'true') arg += ',width:' + (textField.textWidth + tuneWidth); + fscommand('resize', arg); + + this.originalHeight = textField._height; + this.currentHeight = Stage.height; + + textField._xscale = textField._yscale = parseInt(_root.zoom); + } + + private function write(content) { + this.textField.htmlText = ['<p class="', CSS_ROOT_CLASS, '">', + content, '</p>' + ].join(''); + } + + private function isSingleLine() { + return Math.round((this.textField.textHeight - sIFR.styles.latestLeading) / this.fontSize) == 1; + } + + //= Scales the text field to the new scale of the Flash movie itself. + public function scale() { + this.currentHeight = Stage.height; + var scale = 100 * Math.round(this.currentHeight / this.originalHeight); + textField._xscale = textField._yscale = scale; + } + + private function calculateRatios() { + var strings = ['X', 'X<br>X', 'X<br>X<br>X', 'X<br>X<br>X<br>X']; + var results = {}; + + for(var i = 1; i <= strings.length; i++) { + var size = 6; + + this.write(strings[i - 1]); + while(size < MAX_FONT_SIZE) { + var rootStyle = sIFR.styles.getStyle('.sIFR-root') || {}; + rootStyle.fontSize = size; + sIFR.styles.setStyle('.sIFR-root', rootStyle); + this.textField.styleSheet = sIFR.styles; + this.repaint(); + var ratio = (this.realHeight - PADDING_BOTTOM) / i / size; + if(!results[size]) results[size] = ratio; + else results[size] = ((i - 1) * results[size] + ratio) / i; + size++; + } + } + + var sizes = [], ratios = []; + var ratiosToSizes = {}, sizesToRatios = {}; + + for(var size in results) { + if(results[size] == Object.prototype[size]) continue; + var ratio = results[size]; + ratiosToSizes[ratio] = Math.max(ratio, parseInt(size)); + } + + for(var ratio in ratiosToSizes) { + if(ratiosToSizes[ratio] == Object.prototype[ratio]) continue; + sizesToRatios[ratiosToSizes[ratio]] = roundDecimals(ratio, 2); + sizes.push(ratiosToSizes[ratio]); + } + + sizes.sort(function(a, b) { return a - b; }); + for(var j = 0; j < sizes.length - 1; j++) ratios.push(sizes[j], sizesToRatios[sizes[j]]); + ratios.push(sizesToRatios[sizes[sizes.length - 1]]); + + fscommand('debug:ratios', '[' + ratios.join(',') + ']'); + } + + private function roundDecimals(value, decimals) { + return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals); + } + + public static function callback() { + switch(_root.callbackType) { + case 'replacetext': + sIFR.instance.content = _root.callbackValue; + sIFR.instance.write(_root.callbackValue); + sIFR.instance.repaint(); + break; + case 'resettext': + sIFR.instance.write(''); + sIFR.instance.write(sIFR.instance.content); + break; + case 'ratios': + sIFR.instance.calculateRatios(); + break; + } + } +} diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla new file mode 100644 index 0000000000000000000000000000000000000000..2aa3f647f4902e189eba92767e211ed0ee15d8b3 GIT binary patch literal 47104 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 INr#WW0e?>J6951J literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/top_gradient.gif b/simplepie/demo/for_the_demo/top_gradient.gif new file mode 100644 index 0000000000000000000000000000000000000000..f77bd38f97bb39339a19d79a31dbdb97c279b5b4 GIT binary patch literal 1378 zcmd6lc~6rE0Eep}#c47U9WWK`hEW7OG8bTRe`s)sfNseg;G)pYMapGdJW#VuCek9{ zqE-vxtPb1Kavv>F4iP9vfudE~(w4rx-lOf?`!2N8Z?PxO2Y8a-@6_p(q;G!t3iA^N z#9;jXz`EbRw(j?>`#o#x-nDhNZ_VXhb9#LakI(M$+1y^M+iP)o%r1|~<uN+lCa1^X zaH9^l&hFCNU5L#ITb+>A0a_edi$iU;Ys_|)$)+^f0FzB&v;s!kDr%LZR;j@vGgwyi zW{J)$)|o_zX&EuShmG$(2%$m<eFLIzA#@2e2(*Sptzki<pV#R5YTcYlH>*NsmB@?| znFe4U08c5PNd+{afL^ac<E!8+IXLz~nRZmB9g%9dE9&7D&5%SrC{c67ssXWzEmHQ2 zl$ie?UwDEsSWEyD|1s_3CKzm>^z6N|`{hJZ#e>SK>W2@`JbL_u{PY>6hMZnk-_Y39 zOnu&%(ejc;XS6a|^t6u7uI`@RzW(mh1A{}{;gQiX?y1)klT*Cunc1n-`GrNn(wnzJ zLCUg7ELoAt<f{rmDgRER1tA#G>7kQGli6am*&UW-x5w-I@PvTxe(0{$F6ww$=(g~! zue+X4kiw$V8r)$OQ&o{i3uH6hmw0<{$(6fK_q5ECqyJ=FnC*GVuQ_swZ8*_OTc}UE zrjy+!lLXDj%RY%p>mw{hrIKSW&h@nl>FGC88`Juk?^)TsnG56nEKw(ZqB6?&8A;Mh z5Hc_F*~Ke6uLjg}jp>{YIrmyIEa!7N6=S7ATXts*Tm^PiY>Ug8ALv$3SLLTRWeoOc z`L##0n#KovApteHYWMniA|hn`$jVt5x}l5gy2Nif!)2q=-duQffy*%|UX{6sCx!<s z>KSre?q9NU8?^Lqdh^+lJN9sKZ=qswgzGX%&sXgEestJlgM~G@<D(-!ms!nk4&;=t z``k9YLNIpMza0}21C$1b6M(;iUQmI1TN7ZQEG$I~Y~G$pP?kqtW+;gfb%2tDBgUvI z_EHF{2QjqlFE_`tVO7-;UW~f>Fa@uEm;^G^|9tDLRfirAIiPuTGCW`NIJuIl2|US2 zKs4kZQY3pr&t>LopJiWe)l#yEfVKutJOI}IM)@4X5@@YpT@f1r>kIGTpoZ(q`B396 z@O&Qj4<`aOmxjc`)Vo*k@bij&O!!50LR}2@QA#Y*@-(vmc}XsyBD98^I)qLouH=Wb zPzrRd3>s6%r2h)&SY5nWeOur14*jM9kg4w&cIxz<+@EoVuF3F1L-))+mZ4`pp+0`o zQc4`!_b#&#?H6WJQMT-+9_0W;X?w7SQfM56X)NOqbQUmj&Ad3%uzh*w;b1q&GL5b| z^`<dj3eNm0IHJfr9=iX6IcRI5!8{RmD&8{r=`p-zY$`IZ&BEJN((ro_juda5*;`X& zosB+9wa&$J3|9V;X_<B7*P<fZLK4(wTTF}tY=Yz1gZ8D95mDDSrtWXIzs*QQ?ZWhE zoa5cOtYXLe?7WMP4HrsKhX_wP=oIJf#5*Mfdb@L_h=V$%SEuC(8?K9rUGiH{yKA*1 z0&poxv4`Bi{fOOeOvU~Vx2ihP=vG&4!Fe=Kv#xlwwRt(WF%2a~4@4y$^1{tQcrU`B PcX)MeoTfWC%(4FfURf4^ literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/verdana.swf b/simplepie/demo/for_the_demo/verdana.swf new file mode 100644 index 0000000000000000000000000000000000000000..baf03504737f3ff25b9a7279ef11b9a5ab06bb90 GIT binary patch literal 28575 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 literal 0 HcmV?d00001 diff --git a/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf b/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf new file mode 100644 index 0000000000000000000000000000000000000000..c812a79dcf951f14f4332e8b98ad9dd2b903a179 GIT binary patch literal 76780 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�D@5klsu(RUKw!RLXp<@L$za8>kC3N>qct( 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aqNdr=v`Hb- z)Yw>z|CDoTvS<)ecd}KVH_w7Fxx7Z-Vqv6U8^1l=OU``ljjSTZl%t#`+O_`*)>v-S zTVJviN3(i}y;=Q74Nck#2L(;q(DihP%=+dPP<==cDORMU<3yV(C2kJb+rFA@f9ODf zaFX}@cR|%wTdUo{_I#`zF?|R1XyfXqW&5G&E%?Vz7ai-KcsJ4}9iV}AMEB$I%fhdW zhRf0=9G#b*%mO)_A$&QUnDD4QTGM^;DYvl7gmg<<#3zN0+gozMJnIp`AJb%Eujxi8 z6T`sUl6<d#S=rDBi1^e*MZVh-mzPa+L(FLySqD3vjo0Vqv{w}V0S%3DI`h&+@XT>! zv2LdCIXiIVTdQCM`C-aIF*4nkKa~6gZT6J~tG$Bjg-GGL8i1X%YJGw1z|BzDLeL8N zVb?*i7`ol#OTuN1(-+_g+@V&F&*X<*2NHRuiw#2z8I`%wDu|(69gR`RJg})UYr%Sk zazpt)iACiS=9MojmC^C=l}DTOR9eCMuz7l@V1p>0S>B0>GDX39nzDO&ZiotEFjr7x zRP5gnVKWSz)5(>&vQU*D$0i)6A(golNyw#rkEvl<*Ar7&p)FVznjdE+9UcrP{*!nR z?QtS`Sw4O+Z2osu<9CNx-x9AW5hp9(C^vhjg8eP`ng-|dyxS(De-!+uh%)=*Q?evh z+4`HNrrjR<9Pl?uQBfv*y5MuuL##xjqIuK9lY~`xZPM?*s1t;yc*~2qI~2<aJLvPF zWgzs$9Ef}w8y(q@r!L>4_N4=e#60Q2k~bpE!d@!Z;~>q{#T_p4g^jl!Z0HF90*!ra zd)cgr25GHYDNov@v**bc>L}fuKEi|7!XF=xTs~NV!!10_fs&gYn27$vY7x2N6E4^I zs>!9k0^2#GkTiq%t`3(tAY{Lq$GWUjz4_Drk79wyfXkGznQdZD`(=gc&CB{fX+Klw zZtDBVp_Yd{vSW(^>Q^mj&21C&+g(Z@LAy2L(V5GtZp@JV3Z8-SMFHJkz5b&I+7Gr* z2?@A!1%Em_NhO<ISH`bpJ(9X^iEk43eEQ}T%{Q+1m3PXelP&)p(uZo=Pp;P!@Ymv> zLvQlYe&c-)xnnPr4Ep~-`Wk*mAm;hjO*2|K{`XUNMr4v5uUFt_C;UY+%@nki0nEyc zZwyJfZ^s*DhK)tmaww{<4@qg~NCL)RqFNGT+Osz3at30DrQBN?`e&|JDTvM&O8}hY zplCmy_y#r#FrDu6+K=oyW`{oykR6y=`mug@G3+q0q$~jbEmEafZpBOfCQ=EX{yNG4 zq3!cFH#_vMn;8sCX(!+-Bdl-4*78LgJqj%gA$6BYFrpE@#Hr*$NJh-nofT7s4oNro zh;z@%iS^nm8pqoM9<F`{u^xQAzK1E^i9S7pu);ERO48%FviBuxO@E#>K%?yyq0ttK z7rA<sFrVR|TQ9XkdbkLLFEP3`Qcg9aR9ZW-hs!~kVR}S4$3hWJu+`v_>E&{$pt_=f zXpd_dA}!Z*l`3;QS)WahG(~^01oNm|V@knZ&#)-_5Kr8w`O8<!M3}#G>(cUn_|501 za+wbNp<If|KG)7d50oIGVZL5Mqc#OG$o3q3Hhrn=KGzoS;&PzYOUtR7;EJ`%c5)%{ zgNcSWrRzm~Zk-=yJ9Z_`ob$Bg2v6BwpE5zaj+f^3j#RLQz<g>CSDsB08KYOUsRjBB zN<>6St~lN(kXh*NBBg!0_vNzOVXIeveJZ;1vPDfOvHezW+Ta5#Z(`|?9CO{P>Z@FK zXsW)I?`3rmecCUwRrb%65jpc9y7jO6SKS}Z$LLJ`a>i4Ull|$Qk@rvcj8DJ0XJill za?e=(%RM9M$8EZt8}ChDdZFt}bm8xQ%vy5MaJ|ZYOET3cx8>J$lrnxZP))v^$MEgT z>zew(N|idnHWv4{8CtYoWulnVo+{42r+@24_cIvKz5Qok=T<NRjF5G{%H00O#E!ro zeX4kIUEzM2LTC)81GiRaj%=`hA21ymHa5EX6p+MDuJ&9~!bI;Dj5t`~ucg+cg#C6D zH6auC<0R_%;L@SCyx`w>Xdcog2lKw_6HFyHC3Erbb5BQD(>;vomRr&kaSQllaX*xq z9bt){$GpmHR+E50sjTM>mF%Sf!NPloF}1X|Nja`~$QaEOohO^&E@Dj%LNGEmg6)s4 zDHxCBWbZg|h5hDGvQ)iADvy{kb`1Ob^k?+<(;q@;-JNWSZT;Kxo%szR&m1ZA^ACt5 zBhkm~BV+-mqA+XbEs~6;3XbO3r)m8+%~KBA?nG^~#J_=UxBN^LVaOEQJ1yLlbRzhV z66Uxgv)=ejv)Vk(L+C{Q^*slt6s;F_OcV#L3WV<ri^HOnny(zVu0G!*=lV)$831a# zIRf+>!c*LLkX^hfiKIgJ{v$!7S=-A_L>4yq<X-~{Oy|t24<yH%e<nNwc-w37)~%mq zshw!{(MO>kf&4R?+T-8OzIM5)d0Am-{;f=j)uQH)8b((B6~tF9%#T%Qv@j4=Ulf1z z`d8h9D-sC=-5)mef#fB93diZIR&}_n(_q-_NOIF+#9P?qpe`fvvKp7=43D$!k*C&Q zj=!?P^wWXz#pM+8J^)5_8Kg>HuBBa0?5f%5^0>`d#gFeok}umJc=MrG^HaexB&NTr z$Qf$o^Vc<vUVR~XnN`84g;_UbTwbo-fRRB`<c}Ut_|b>=e_cHyH3c;~^JC`3@BZqA z^CP%59qpIAL~}Lh)r~^WN0LL@GUTteR}=iv<QDo?UtBN4hEMJ!{x|H*iAZ`1Ii+Sa zCGigqnK$`GZNH4|>Jl0pnjc6ofx)3N<@TN@zt?G+01QsuMW{;BXiNv<8%vivelEjb zFItl+KMWhw9ZWD;0g0SHob^+=WMRK{D^yUF8xHzwp^?i96^fphTXiwU;onE-XrG_U zF7V`vW@t3P4bKLLE^ESA{iMndqD3|jwD^JJG6NOEpsoK-{`>dgJ(ARU;J?9npgVuT zV9bWyoF|4ezK>YO2%EOdCtSVtznsi60!m55L}+D0Ujhl%YvcyJ!T%uD)_m*twqmgd zrNm**YOSrl<R<vvMdBJBYWfHmwi7-l;Q=tCm0)xXVm_~^sEI<U3~EVU1b-8dR9%9q zpCBDqub?|?3DQ@_o`PB&6`;>K=IwA-(DBqXNDSnSE!ucut<ah-Y5dxn)7K%Pjg;k` zZMN*AMkhU#x{n?)W>}!-c{GP(6bfGUDlKdb!iLpZZ_P{|Y0u?yYDF4(&{gm04nB2j zJ!-{{<vZQ5K2tU8tGJK=a-Yr%&5AM?&9O0b3oUt`A3W@qOh=t^`%@RWG-g&pPLZ+~ zjFHbSbaR@IFRWKkbt4JoE1bN&IvP8<=_twQ3w5j0i!i74Tu*nWg;dWXxI+%SO+fJc zgo%-gGjX41*I|x8H|wcxRgLuCnEdu+k&rul1E337nh!Z7>7JGpNDLdfl|I(v(w4oF zQPfnTxCic%JhA2|_H+-VT_M5Vzi3jfTW<2}EGjxj)^8T|p2K4+J@(PV(hz?Mn_}P4 z&2e6DQo!{*hv_y!;#{|y6c&gsBqmqtwD&nUVH+B#1BZ1I-7HewtimXzkJcu*Jg<6~ zJFDFqGiltkx0{PJZALv6dmVJER-Tzky3Jjjz%J%TJn0X*$0bmza~Fm47k-@=1Bw^p z!Ex0#Ezb%N^7}0gBvtT<#?e{_eHqADK^^xtJ%=MvfoPp=94|`_6KqRfJ?+BnFc35+ zNQ;<htI6xE=gTyc8k#WgIO)i|5ZkLhs&;}fo^-743!(oO?&#|+Ro$a*??%jl1UAPO z0(_LmU{t_9YYoi`lAd6?a?(h~&0{gb8nqbLyER`1<u7z{<O#R{MLSGqgwxCdazH}? z(XUwNQ3Z$AmX7CBqwBR}z)tt9Q+Fh7xRY#+{kpNDr_-y|@>p1$0;2*vro?X53jnV# z-R^-yVqHe(3u{-`iwaTgob%O(wBsn3LnKrx!PVZXdqy7=2d(VW<}PxXtJ%*Q@U%hc zLUnDmk80sMLNK3RYn$26?ybDsEIJd#Ht<wm0-+j%`e&&6p{99t#Cq0hYV$-yOv!Lr z6Ua;-dSG(m-EJHr$yZ$L{C#1P5!wg-ib5WRS+4|nY}Sk6VBKErb3XIx&DX6h>t87Z z7_xf0j-HyIFTl91kJo}jN{5A;)Ir~+j^LOqV9U)s0_`K;sf{uw-q-u{wD6|W4<Q5v zNhdu8aRiUtU3=OG8p{|!(?f&p`j+8|7FG<$`ZiO?aPM#&&o>eAI){6{&;d`&!GK9k zt1soth|FG9!Hd3#g=hG+v@A`{4pp|z8)-q-jn1;?0Z#oMtVIReC)bkHcQz+_!w1e! zGlp3uPRHsnF4XM4`}S_o=<YVBV>G070?RCnkyD-)4M*`!mH@yQK@nMvg~Kc_>xfS6 zUaR_rOLO|cHs);7tlMMM&Qg}=LBU15O@*!1mRCFU{P>&|b+)04vP5m;Ll!pQnxYsT zLRPonjk_uJhhCb30vB&i0M;u>LMIcxssg)xYa|qQ=Yai;G9kCKR1B5LQekeONAIjx zO2?q<v?koj^D*Mv5d7l+Bo^VDS>7kK&1X5M&VwY_XE|#RSQ0upiV<fOYTE3n+VB+M zyy!*7Q|OdS147VU%Jur*@YT_oJxnt1AeceTOcF(7!=-DW!H2%GsD+&cn-{MPG6Cm1 zNZf-2KjyeEysVrXc;>JKA+<AZVn^7jEcxU-Ew&KYvUX#VH9YaGxiR|iVrjuu0+*uR z6kgC25`=o=xr{fyIC##QrM(K#I#qH0F4VUe7T3tHX9>mMFGQW~?3srI>K^WMcNB4w z@qaKa3{9BJ86cMepY&qr0ynhgXXp9qEx^NG*5qd}`F#<^-QG#rCf8-B))i~u2-n3R z?!|*b)c(8&YUdTckz;3}$HKL;x9j{Jr%7adHuiJ)xNeTk`2<h_)a$7})iEtD24vR0 zZuR%6WdhB>99efZn2qX-H}D=yr*p)%KFmdyTG!mj?eLJGox+1nu(Qg#^}VHGk+)~@ ziC6Dt=ZW>ir03g8lhVC!k$HIfELvd)UhoW$4K3c`%y7kv`mN=(;f_YPRz~wezC`zZ z5^iRfnI_hwO?a5ch(mYiq_qb$^>7-OHGXevz_S6R+L&il?Xf>afSfyzPN%d!b4gw- z%?h4MnsPf*RgLGYJ@?_w8gJ_`)Gp6oTcvbT1}BNTuJ7K#?M!NT>U6-J24HtIaCd9h z)loydnX(q@I{tow0cr$IpI5n)7YOozrB4EM1suZlx3pZ_*EhxzPboG8q8skB3UaR_ zMLcc$6Ln`xEjMGiMcZ!|)g$~mJ->iG7U02J^ONOgiJ{yx+g8ZsS49FBL)klZy-6%g zBmmFB2+i<<!TGvQUAIHP^j>0(@kJ=XAqD9dPD6u*)E)Ha9K3{X(Af;db3=X4vdw%- z#DKQi1>j<Ei)1do(r%g`u5%G50VkmdJPpwUwI509knp0;<3a@XcIp$$y>mv1I&r1c zonkn_qe+L#TE~6;1<}r!jiHVZR8qlg70pFwO2RBXOjZcg58b`NSZ~hiPCtuWpmv}T zs$(rOKFHhMTntH?bM36mAR5k3vOL}W@}UH(g&Nw+jo8cynd4_e`X+Gq=aVYem|r;H zdREs!*JuemPdlNg#bdZ&%!yZ~uy<OKfc0ik;c+hol3a+7&Gq7dNZVLEc?we3*JRn> zyd2XQp-R#49R}r=+D^2&s11xBFRa-!yx6ZyYT|UAHt%=QPm<-+I_n0GMG13z?)R$> z>+lq>*1l@un>wHfaym1ZldMzWAnS@fX<LT}*4Z^bn5I50n&vp%JY3uemLZ#8*lJ>3 zL8M_Oot;;9lL&#&b2Fm_$-Y$YflOfz9cp#sZXB?k+aTBr=zhoY`<x<N*(6V$9UtqU zSP+85GL5E!#CpYwT#a)YY@*QHzhV49HYO_SAY8H(*zNV6z)c9AG=ILhI;LM$Z#O*D z)1%y!#JPHXS~|L^!L)BI0%LruhUzRK<3>%IYEv0&sl)7+wNIJP2N?4FXm9OdXuQ+h zyqrb8`bh{Yj(goHR~-_f?v#G9QnBml#&Op6B@Q%S-2ptLE&LV|1wCgu+C!MT3C&K~ zcgOa1ZgWIgGHY@eA$XaKijD`81f52&Q`Q|J!#fgz8Owu7S{#PQkaAkS#FMjjUR)u2 z(}V9(4Fi@gi=A244OC8>c}||zy_QK*>IxTzE2}H~*OO2we6Z+}UDZT~DEP(UpG*kV zIhzgSJPxq&DXgcK(s;H4mKwF(8iOG)-6^n}H)Cu>q3K~lwWSOn(RB&;IPbz2OKRde z&tMev+*ojecy6VX_)U|uYXD;Bj@ixkI-qm>T6{Tsvct6KSNk-MYgAUcX{`a%Kb-u0 z_3QF}2oq<c6xeMp&e$kuLu>GOgS)VPbyl?y{f+QYr@Ihg*09>jExWVt%pnd+o_rOD z@i9pWoHq85k0;Zf)h125ed=%)p`+pQBof6W^*2-@5Wce(jF3?++l5|JYcAb08{^{x zUjnz78ua(GeaEx(z9C%F;A1HD^jy#RcM{%`lDZ;#A@%qJ=ke#?&nOdPbh+l);h){d zB#H7m1Qm+EI>Ra`)3i?cXFCxGH{L7j;}kX_>c8US&azuBO!juNp3O!l^?5p2SnZw1 z2)Qq}^*p4tI#<uvU&U;9iZ^lD`#Pe#B?zxj_MB0%-QwJL(k_FSoISrN@b%;}a@`JR z)j@qXEL#<tJs-YBk)(FA#vJreC^yFie0EyKQhOdiGNl9L7IIZl*{e=U+&}UkEg5wf zG)Fb=Zq|u$TYD^ZjIwSWZ?p_bUX)r4PjJ$gB^ES1Q{gs-Fe5?&brko%3r}~*xR@og zD+w%hB-J^cv$;?AQjo>Ct+zDkx*b)8)Hm2p<rHa9Xd|+0L*hZx^}eO5z$my|Mxh!D zCJO`%i}YqBsl%l}t%eRAme5)ibpfLyRnER1^@Z?9dm<(~78wQUQLu9dxU_pR)P7*7 zCClnq=9qR`xce9w;E4Xuu8Y@)4n;+ToQMxcVnW%+hMUjjsK6G`!T~V~axGNzGUu@M z$>G<$dA7a|%`BdQ6NgCG=^Lh5c^!uWO&42?x_cD0;M4pLjse{;Hz5z+x-B2M0a?dw z!t<$CjF5VclOXNHF5!@*bGz^1^3A#%Z}86a$0RW{!^yYY-g+Vze0w0k-HF(UNnIsr zpv_6M5J!eq=_IRh>A7D39OlmC)ceu0H?ii>(R%3p^rDc~VO(^h;$GJR;#A+IX<)w* zRdyOI<JYvCV%zQ?5G8v)cBANFW7%^Cc=h^F0rISc-z;>J*QNP}D~rcD{&dAs;^7%g zRp>S5qqzAXiZ8p1qMBP<vST_nNBl{a+UZa=aBD7iaO2q`oaG31;+0o=hM~Zpq=pzQ z3lbMAMG4r<Rzq5KbsUbO!)Y5`x3qO3N9rAM0qpg<OsDOk14$EyuS;wVUha;ZK<7?d zJLwUge>$A>C5YiJ=S$aAnQY!58P_U52<>eo?sERdMl<JTJT@9KJK1RP)@XPQ+qJU^ zJP72(;5u_~?ssZXj0I#_(_L&`ccqI7h*}l5rkQu&YlwtbG`TG<`My*{7FiK{4o|5L zOw}R892Cd+$NE|SG>YF}>g9H8G_H4v+V_5tWx0vaZ3r9Nix#5MZF&p~+E%tEc-Vw$ z?*Srt3VKG9`Xr76TsHSOMK4S>Rrb~bf(mZsSs)WUA(mAfhqrXMWnA||P;Xn+Pmai> zeMQ4`xWVK|$jNBy^vr5o;y$hC**C1&4knQOMx0RfX`2$`7B@x$HLl?C()q2%b0PlI z(PuTh10r)1j!+~<Q`J^y)U(x+a&8qSPL-MulHuF@yFr-qGTQdj`1>D_85gTL)7(I( z+R@rgxR@C5{Hx0VR#P02$8qxR5iNl<3(&SZu=JG|ZQrf5BF{9wrsJWw4ppnUooQds zXHQU-NE6YeL1k47t(~;IFxG8~hSjC2=)z;8WmZVVywpb1!FY{O_tDmuyd>AHRC-wp zQvOv)9EDpR%KsINLaPB<09cT1Akf}@eUX2z*|??aw3ZzI+{9+3M3rFK!i5_iq=~9+ z((A{s+Ul1`WOMXHRzX8hy&Gb1fs?c_$`b3d)uk+qU<(!*Ay@k;5MUT(v%<(a-rty# zzXNjuun5}Bac9l&?OGqZW*V&y)O5b)vv~^J-Hl|;=p%MGc5PQ4ca)tt{F=?5cz)0o z*HmYA%r$Q8Y2itA)*Ofr7i2&2kKl~fI^5T6<VSk1>lVSBH|t9chpn5yiq+?8C+pT! zaCX2tPHad&g?sZP_4F9UM8#(2?m#|jd5@oB%0<z!-$9>6W3%CGwYbJeBF%R4>pURw zWF?9@dO`)>q<_X5T_we5C$nA2suJwEQG_g%X00~L+c*G$8&H#N*!nsRV}up^2Mb%= zYI%Xs@SwqH>8QG%8cZFJtwi(6dSn_S?fKzp)kQHv>2#MqPgae!FL0IvT5G>F>Jk#9 zy}(Jb`YKUqcX{lhc{a{h`276h!q}$->s8;M;`&TwZ(avbKkJA!AOgIm7fE>_G05j1 zreqQ!L3~PRU>dFZ<n9)cw}Qf5(-Z~ub*Dt=xyywhd;oc>SvcR+)ax)?2uk4H=Ly;8 zL6!mg`v$cl4w}OwCU%dq8J)%+Y7M%;h|s&Sd_Ca!j}%J^cuVq2={u8Z{2yy!&3MS> zIBhg*#=J$9c6)}i7V7Hmp25ivbkywU3Z9kj)p~iMlM95t21`$lmY1kv4yVdib7sme z#|mg`$q6l95Rw!u4mE`)35*-&RM2+BYPo8=Zj-UmlhK<_5;!>5=G$+*s&SW(5Mw=Q z4lCh4O_wkiRt<Jen#tJP4?oQm+M27J88YCc1eu~N{k0*6zHq%-tM=tBcG{;Wn8)6x zV%!<!yXM9u0@u!NVbTb5Iq}7ec{_23VCQXb8bAjW_ZXv|JpdPl5m)yvJA<lv#_nEI zpZC<-?_spcGc}qIm3hbuc)4qw7$s^ACoP4(!M=E%YyFjzeg^7zZKm)%!N%!9Kg6>t zMSEHW#9Aqi_w99Pp~a4Trn}WAm3Tqz`H?3Q40r1TWyc>qkkW2=$#G6KNNC8>K)ijs zZI3!UlZcy2^+af%cS6-csSu8d@LdjA7@oiFutG6%yFWOwyKhbK{+?7k$b=f3P4bp! zYb>MBG>&TV{3&(-jYLEFG?m|NB2^Wx1O%@()#IqXYa*kghPNPFMN-rlX<z(Ji@t~= z@%kvv7zC?Vy?7gA8%}bY&0xy+zne2He!8I}PnAwV61K<LTHuRwyIZNSTA!JeY6n@; z&6>DBu2X3+FxwSElktdkm-y?$sN<UuJB)`Du|SI#r*$Q@J8f>?61XJR1y3wXq-B7p zq2RC&%lBhk`S&m41(V~c#jDhw0qld?PHaj?ZE}x*OXFL|eLVta_X*-%GiaK#F~4nC z$7a+-2K(LtbB}Jk8QwYFYsu_twGdDRFlbpjS=PQXoI7K_-8<!EY^f@5(sL9mL)w3@ zqSlaenu;P3mbBpU!fi3NC1SY|^*#Dgz@BeeUqJ|t@tmgvgN(Err9(`}J9VXVr&-9j zX`X^0KXB#2TKW4pZl450C)_>DJ(<%!+E4omN{ZSNiV1YGR5r18y(RY&C3&atG!ABp zLW^i)2InqPhO#4;@_6hkHqQdC-?czl1PmI|`&YzWw@eo!C2_4dGJlJcM6~-IXuhq2 zztcY+RCM}je|+xd*zNlVIeVFS=EzR(PWOt2VFwMwoXvwuh&ZQ$9QaLDDxW8ziH{&K z+hzD=z}n*HXO;Q1MT<GM1;xvE^<(zP!8MZ&FGoL=tiFmX9Wo=)iN<pZ>ZCh1HZ;l& zlbG?J9dBsz5ev{(Z(8qe^-6AY{9-$^+JkXYryr+3>8(B|iHk*16+A6W1@@D<UA7wy zdpDPxqe8}|NPcl_B<o=Qefc1!VWp{u#;b5Me`XH2=?h~098+ko_I3u~Y3eSb=jxsw zE!F4h0}(c#nxV7WEDO4R_CMHr>)%XbW?e9x2~U`L!pVf0Ghya8%rIeQW@ct)W@hFI zGc&$nhRt`*+11r*wYq=6{iWS1ce~nUx9gGRdWwqppKG!b-Z#XWR${W`xXI^i;$f5W zA&Aqoi{0Id5gGYAJZu?(n}9rU^GOgF({iiCA<>w;h5Ekg(waB|qUp1W$A?_f+9DCm zU&c@XI2~C`|70dbIAld8V;>zL?ZvZDz5|=ipJVgVnzavZR(e7axUa)wzdDtm`ui`R z0Uv=Msk8SOQY9lXI>i$#>B!R^X7!Fm%N>B8JA#K1p7OByxz8wu?mk)f!cX9EA6`3x zS6J-Bf5dTru&s$_U3Bh$W8l;{G;1cRiT7UP?9w=dZAD%CM-vaU`)*q^lc;g1?f$!L z*Q{5-G=`bF<A~_2*D~6WwZ|l=-b56K)D(TE*HyL0NUe8+=6~Gk5UTA$?wmWH4=2#l zs~sE(aI+RX_Vy*XV4<}L;O20);nYrX^Z4l*70y+&CZ97#GkIGB$|S=hm`kxw2S_28 zJVBd2fqy|n!Jxa7M9|qMzcFLG@}J;Mh=NB5M9U7lJq34s$G>SKb-2oeuT*?cn{5bf zYYWhn*>E!{T+xzIldrAWQnB|`B@`q@IMzxnk^`o^t(Yq?6lp0eIs_u(d`UET+~>=x zJ)S#87U^~vdX{#v$hul9B<pK1(g~1LX4ajgwL~DzGxAxrQe2jb1U;WI?4Kxcd#XdO z12QOQfk3^}`5qPb2Ntwwz(nKvkM1#%-{P8r4I0(wzbj7x0LZ9TCmNyt%jBs{!6;`7 zR&!`ykI`=Oy|jfyEid&j?&E$3RZO!BCFj-;<B1<a2cJx)cjZ<w@3ke+IZF#yTcs=v zR+t`f>f2wV{fu#|Z2Naq0*S5L<z30mN^>*UEBNFuRd~huMxIAYU>~Y4Xklt1e=>9N zT=Vk|Cvj1499D5q-`3)Xd<N`$M2)SiRO7}<=2hNAF(b587kVmqbK3KH1`9otEH5L# z7jCB{|6B^#gUS|Rc3@E*gCRjPlWx(pc&uyLT0GDBNZz&_p}Ar+s4~xMW+o&6*mBZc zXZ;=Q3^N1bebpW}yVt1^bQk1CSgY)N@KM!<81lE$O&#Bu@|t)g4egT@7t-RSim`!G zh0Ir`vU3iX>=;*ct`D#A5?^gDCP~;7QaV(P3fIO#{#k~0R~b3D@Q%T%b%kEKWC~;E z%ZN_2G@9ewUBBE{p2lhT^vHGbbnSf02sU1`6=5Io4j6Avy_x|-)U<+cdb9SQvlJ~@ zT@J$pyBq9D(d<_gN9Ky<IL2`2I0?x>GzQ%<UF{{Nx2d<*+R<eDvHA+U?X6z0-PX#- zoX5#q2{*fXVa%HAqM^fe4_55C8BndBaU}eaJj7(1JWrfwzR3Mhy9p-S>UgT`&DEM_ zoR=+KaLDCVAbMi<k|jK!4R3r;glfH%k5wWuq|c<ZR{lMsPpf0b)nqsz9tfq%e2<6` zWELDGJ+}-O?sXU*ZfK{0YmL{;391*u{|sUKLVh~}>M&xc1u+T)AA~dAJDhHQ{&+`g zl760#xPMHzjIsvbF^1$p=ejEDrfh#jx)MxSp*z)Ppwj(LmKDX1267^WmebvfP}$yH z-db02yo<Zap^_|@)oB#uN6Sn@L$m&z+n``pQ#Sg@`R7P5vYWR8XtFbNeaJ4m@}usB zsvY!#gt3*Yw}d|UB7HN}o+Yj_?pF3j5j#cpqwOjE{&=L|0T6C#nnE@lzf|d*#d?** zh0}O1T$7b3B;T6R!Bbc847DrNxrcu0WV2fa4XY)=Q&L%JHzUipJF-|cgX8HS^MmW7 zkOIlH*0(1iUyi|gak;rDX8jf1C92W+E1kDxJ-4)`{1MX{2C_5r-V>(rqA-Y>RKI?A zT!MVUO2UjOD(g5a08HoUAXt(cDSd6D{k}u+ahPHqHHRZXhajQjLWfgw0>{J@A^Wm9 zKcFNbyDDLco%`(asupHEM07e{+!0K+A*rIqlhO&@N6cpnqwA$R%$#nIAOAxyS=?Fq zP?2!@@v_7&wse6%*l7}4QD4|-^?c2U)kL^h!f!;lXu7{(ec%@=slJMl`&$)cFf4?S zf2w#lMtt*Kp#5ps+0q`_I5bQ`B>Hj3;{HY#f35WKh4d<wN;UDg=oUd4x?H+@nPw7H zMPd&N&0C4t9x9P_B{{DKwhOUIZ)IEbGkZ6pmIlpO42N%r>b`gA3W+X(yh)0e8XNie zy2^C7pW8K#nMk^Dl|*NbYze*i86g_k0)-gc5Erzp1?E+kk_L9_TY-`%EH9+no9dUG za8d3pKy6ETrSx>}rdDQNn`AG{+<%-MK+df()hSaza?m(jDZ(_&3{S>xNT%@MR0KC} zNQOiMRIUvRfEKRkD58Fcv3LP6-tR4Xy;K0-B)3E8dA%q_ygtDzc-w5W#fF_mU=JQ> z!U0!Sujs=I@SFj1$*8C*$I987Az5J)tU3QQTud~r*oz55iKohlxNulYd8sPVD|bCV z#d?kwU>K*{3_!j%B)8?#@#s>Ox`_`XZJ0l$SBfN7^?IKb*X!yeo4XfqeSR^7Gcb>I zq~~3Ot=#gpU<>W<ITNK+@-dxDs-H6_RbXn$86nuPJM-@pbC(GDpS3}s+YK($mvWxM zotJ3^@}pJu#HZlVz4w$K3x&fi9lrMm#QEPfX*soO8m3V4SFz|`pH6Fx8NIGi2k*{n z;&nABO=nE_7(cnuK%2m51{PS>1^Nzbo>3Wmn7zK6t$a=Ap5pB<Q7=xcf0T*|7v`}H z0j>JBx>a7>xjAxB#qRLeFH14dC+nv_<e=@Y&|n*Obkswpqs~+&eN?SbA`zI3Bjw`J z_yB5?#pT^Sl(U9>EZnbZp8Ms=v|2*mezD5M7+ddMWLb&<=RRbTt+WnEImkNdO<uL0 z!1yd5>pU^!rzH@r8*E=6Cc4L-)z-S->^<qDU&prAOU5y80^F%5`vGuF{N~HHjvL%J z7B0O<&HlnFm#Bje<pSeJ#gM3CMx;ILHf6lmT%8A;KoVStwQmo8nGd|?b%PYIHo-~! z8x!a=+TpWws(UAD#DS}|jag*Z$#v~eHbjocAAZT7|7cVqzHn=D^zvww;RVr&?GS9Y zG8xrwAe8{oK<zR+<wFTGvxcuJWM^R^ckCO4&<@EdY;pE!Xq`X1YFkI)WfR2>w0jPg zmUUa6bV4%at*W;#tGACSU)E3|95ac=2mrQ>NJ?Ey!OJoYC#(DUT<$@4<6K3`WAwBk z)54yoTVbTLUZ39suJ5LHd;M6^{dMjb=4#^twkNN9O)`$jIdn7^OA6RhOp}yVL&{wg zj8CYZ4=fNZ<j@qaJP#&-F76DP?Y%GSL_66(pRe29R%r$?hEwpFD(vDsoNTzEx(74} z!AaOz-T~(Wd@1SuOE!70zvb%PXyet~!z~}icobkaFD*+1r}%F}RNKiceYBMhxV?^) zlWF8?@&p8~F?Lm1b~ug%SpV+kmT|ho;o52RdQA)gyid61+Mc3Ur>|$;^OS~Sz>Ykw zq>oCnqz;6`uoM?%e%p;Cn<jzeL*nKHU`8Y)Q>=JP4f-rO)uR+;Mf)L>q2moK2mJ-6 z@tX?YH*nuFIWy7ayo@#-x&OP8R;BW*O)cf9#v;D9a#u#jQN3SHNaQ-sm*;Hx8slL9 z=Z%kgBAcDbf2*sFHwmRu8kfPJqG8={YBSq$UUH1#ik)&eyvXzu!X!=+jcPn;HPM-> z^vt<IE!rV;XPS%3_GX_f#G|70y|*h%ahAhH^Hs0d;q#rZldSBa2#)>aGoc7YsHlHA zktwU%x50bTcsJw3D5LThVUVkx8K#+u2%}-^CdaZ+ylV!hV<A6%Ngkin<+??Lk828q zcydX*G^6_7M$HoK=xv1|BJh?C5s?Royi#GqegDiQc;2kDq^PrU6Ca$xw`g*#g1Xuo zEnJpoeHVj-*dG{)aE$RQdht>p-;OGkgtia*YSl)T<bzx7i64ApC!9s4#vGWf=<d5& zA(j^>lGJ?!)`r&^JMxIM^i;mIEi$+1rT;R0w=QJuS&+C@pGx&H{(SI~Z-wm8Lh3T! z<ar6TTd3&TGkaKsit7STcej@O5uU!kKEt8xMQ>vYSY7oezoE-C9T>aoJB8?<yXif7 zK6Lh#=Q#B;oB2GxS;7qnI}Bq^Un4^VIw&uYVHZdl4`5)naro&J)MLx7YFNy3$g!7E z${CIGC8_9YAJlU^8_T4H$CGRCb2R;Pg<bc^u|+6vFG35E8&CRq;Ec<D7*-J)cJ<ga z)SP?0nDDsYT`jq0F+K(aOgO&&v~jte<XU=CPRfjWOhnXGeWH^iW1#7dWKkeYp`qe@ z{d?J|p4(KB=30-8xt^(VP||i2zoF^#8JV1`9#ORMhuqM`wi8Z=l!l3$6KuJut?j+b zu5P_q_63Qof_(VkZvS<jji1qP!nzZgs74>vIlkr1hr3<d&s`Sv!=_pLOOA(i{M6?( zQZ_+XVE>t7I>D}p=v1J{SN&yLm8846Zd3;QnCmP1+WnO^OsBO$Zv68vv-kMQOq;n) zKR5ys-&H^4R6Y%F>n=UOTm4P+0(n|}HpyUZ)D20#zNFD8=D_LT-^*V=X$vs7B-54F zO_|fqCd^Hcr=(tw{*21p5!py)p%{9b<=&rcsAPI98DadR%sZW^gxn})S&2#d9`U^o zw6H9$9bA$6RL8MV4mqT~ytsK3v{a7|6T0(c4mASurCi!Wfw<f8BL+8d#sOQ9+^p1Z z*C8n}E{t=|FNg1Oh&hUtlNi~^0QK60p-i0BAI(D-L+Da3nWq7>@nNGhb8^{--6>YT zVO!&?`Jc*)2hYx=;6h}Rkj}HpO;fBCv#RDt9T7QQ1G?N4I-jIIQ6K)Ay3dm)=+%47 z<Q!eK@e~|AZ(GrQ68>$_zSMj?;uy^#iT_Z)k7sPcm=MQd#~L97`)vE%edCx3cuL}3 z{rc)6#n>{Wfm@LAJ9VxmL(azFIy|l!;D0!zB5Wq$O7CZ+I0Ns_r>26By}-3C#?Pi8 z9LJ1>srTy0s=4jq!SzDtm~gm$pWvjmcCkukAj?qB&%=70w0Z1GSx+u863fio$C3`+ z=dqob8c+3dehb3>RETKqSro5x40V1wYo6$H(|hCpoQg*5z!c!yr@51~ULVcoHR#Yh zXBN2OC;I9LEgMIU?7HiH6ajv~lIBmd{KVZdPux!gY|gp5>!=9#mY~y>OjK64+C4tG zpSm4OIW}RONooke4ouh_kIlAqYntfGjS`f5O12TywDURJ<T9K^N3d*`$O4VYU*&46 z0ACuK+H-bVx?FjwTeVBULPuMxn71>@7|CmL+9JF_LVd8$bkOoa_mSGX<t=~Tk7MVJ zZfV-{RIhw4<$5*2pQ(y$QXIk&SVvnD(N?_$KK2o}U;mOg<P!ei!qaS`Uy=O-CYD1e zNK6L)Q3d$_O4_@*t?^;khui)cAi5zi2<H@B$dwu7Fc{~TJZ8E;ahbgvxZnEp2Pu1- zyROhg<(tFlh4jn8P+kmPE!~|Km{aYL`VXk3rlPK4rI6&2ar4&gcGIcv(kVoeL305{ zeXIWB1+15z=uiylez{6%RCeyaTqx?AOBm_M27AePQq`jDShxJ6U|*A$ksf*-Z=Ym$ zYHBTE#z8Y0a^qK74(vPlrAt~y<0L{2=|}|5)VOo*QB*R?0N#>1(F~_-dS8O|9-hi# z;V6yXcAp^3^uqV>#x8TcdJhZAn*|R$`NV_0bLs?{nq`08-PQg||0TbKU;c|-cbX*8 zr0ua%&t$x4PGW=N#_EVd?64cd-~}}PrWmhD((XFEb7z<4MM5<kPa=odPFS>!W#wIg z)lbK*H?>;x-*4T~VZv_SEh@9^w$JhVvi9<$NBXJ7cujLU=YiFDDwiIrr_x&m(UDd& z?Zp8a-B<2kZ~a!Eo!)*{Ees{>(p-gR#mLk?7GSuy!>TX)Lp+&pho=ifUv^y`+U=gv zdws=)!c1`tEX*71v!!9%vhuGuOLENG8S4xIdR29;r?HcfF0d}ADDrsEBfcu1H2asO zu*|xT&Y>P&8nB;l#0Ki$akZ1U@~J+C$xcfP9<@_}mfJ=3L*f%Y8Arixj-O|t?<y%c z_3SP?>@K5sHm;P-tqC7vj$d@?yHcKrSI7+C41qr$pMZ(^eDzZB`eYdbYd2+{WI!>; zM@RI__x*9WqJ2TV(|o41Xb?IV7w8gZ`_AIdR4G-sr4$0Sd-=AcS(hH3oOWZ03aV9g zu^@U%asacfFB$_-vLwd_n2)gUbl`<U^B7ceQ}RAK-!J-Qr~4wYO=!{4rQ@?EwB^!9 zFq-r#D@C~@hsm~zBzE={HfbHZ3j)(M!wzV>&kJ{=v0%!QX-@ZX`FItdc{q1yGV&6e z`m0_N)Pr5p0Z;qHsLFb135H>5;D_7Su5alw3;^CU?pHatXPmceO~e#)f)wQrJgN4u zUbK4W8l2Yi_XjxLY(y3DrL((Ii4X*rz%0CAOa4xy2NX6T4mV4HULDw8ysaNMdv)|! zo#W8kqTos$Li=ru{m4Dw%I-0Vx7FvkQU_nPk#1ReP&p58;vyr~3r6(Qp={kT@!0Au zTD~4G5vSR;otQ(JvdxGk%}~P14(P727uI^Axz$GRJZ-!}#@VhmJDx60Uf%R<Lm`*% z4#v#scRNzce5zH+drv?ajsE(#qZKsOekGEGOYTDTlC*h8!|PaR*J41*-Loz9&)wd0 zX}9b!d!fW5+ZjvTn_wdHx$O#lAPFJdr6WPPGIZXlC;RI57Yb?6*&lT|0kd1&Z8O(& zl1Z;60gXkwQsrO?_jQ7Jbe1{HZd-?QJ3^XVv+jkLl<_SnH(*MNzu%d3fBx|$ZwF^T zkZ#g2s#Ay4MJlAd>=gHYF9%7CwRuU4^aJnYLx6Vabf&xL-wl^l^7vxnt6Q`L`mgkH zd+BG)WV2}I`{N*5D9o#+{^Cxl38WYvy5|}nwIlOH=f7iact~v(Z*l9ep3ZVNle*9? zPOiaDRwbvhA`aKrbTz}2;Udl6iSLqi!G&gm)s!FFQ0uMapH2I;$+lsF@#~*pA*dCd zbkAcA`&JkbJrv|v*FIakR_vWNn@c-WL1Yf)l#s^+s4~KOzc|5p={$et4`RyfAR#WB zL?%zL_<W_y$ZT_b{`PQf8Aw+sYKcO*=o{%(U%Lxccq?rz^Y_<;GGi-49g&PII2oX? zZ$J5U_wS=dIKSfb^kY4%8i<YQwl5bLM85nt*bKSpfW(d1;A`IXE=)_nyt$B7a}Lmm zQ2p29S|q{W%6Je8-TSPezM}*W$YMMNoV-KA_)^or(BF12*LzJ(kK#D0b!T3!J4@Wn zCld6L|5%*9H00&}^ZVI(vJP(qZrlEd3*S-a1mlQ^sHQbwM&azX?{cTf$m8ffGo!Vi zaPewx4(nlS#_%gjOSmLE7x3vUcW&`S?%D!&I1&~O=Y)`1{hIn?9#7NqRVT7&CQb@j z+@MPkAB)>VVyKe1(n#_uA%X7$T&lN=ghYkh?Q8<&stlT|qp-1R$|CI}j~p&GIj5(x zVPhnTWu0;8E=fgxj=!7NbP9Z`NRr@fimnrhs)QeS^aF&HGUx<|j5UR-%sNvRzC3|L zN{!f-HMwpR7uhVQ*&QT?)3j3>uCS4spkR5yA4Nge6hUeb5%Vf3ozEMUI)y&bbe^c> zo?8CLuxHLCWy_wG_#lb35>E#-G$VKBIjn(X{)NxZ&|$2uaC$!nHX&1jQL19BQwHK? zVZB3C!-KMcx%7*6A08qj>m%>pThf1jH4DjUZQLpDyx`5*U*RdRWaOo5+@YviBAYYJ zPu0ikPDR_^M9OV?2t0w0Pap!rpo5XGiB6$w3Hj~mEMzhq8X4j))ILD*QcdFNSAn~Z zT+p1Yvb050zDAKi&uv4*!P!F_+ooJ9DcO^q?3%$#<PYm|k7V1P_VU7&K($*vjZWZF zFr>oEjQb+HF<Flu)iUC~=xgYMK`)mMx0<}Z>S&#~SLScDUh*?OH%4dcPr42(ufqa3 zunkG`yUiGi&7O&S`1L9EA#@xa)tB-NAJAA^C#w6YrH}%&tFZp^QwQqa-x$p$FScs} zbV5N}x&*W+eGWDnOT8SYG&je0v2Q~WJ=qVl%-VSZ=_1hG)xJKa;?H}#rzi~=8KkY+ z1|nZuJE_t!uG7BKu+}mZVf6oQJqEq>&RS7pEpb{6q-@3_JMKug(~^CL$Rv{iZ_cW( z1k4L-b{tqE4qo`f6}K`{xVrcW_)kYyk3!s^5pNF=oZYy*8)fc2PZHyHFV@jm;{^$n zJ#@ThNz6BY!Ps`lBL_$)be@zcOGH>VDtR+isaSYkCwR}&^TT9DF^@1wWmcUoMP8dB zAKtKsU3@I45#D&Zu{mmv3zr&e9c}8~qFW-kPR{9B(L}>6rHrty{K2lix8hFN$uZM^ znTn<wALSbTY%w_Os-NCy!Kc}@vEHop+4D}z0>SKR+00=>={9-(^>tT<uON~UU>ipO zkFc9tRr8C}YLk`BP-6Q7PDQge#;#h4>o+<eiXjG*`}*QG9tjS0oy}F;vpuy<eR>)e z!!pEjamN-<=UGEwx~XR}?6IAfRL-?r2B$5RpH$}=E#}kdV<~pA_4p}w{(c{2`?ZKl zvJ;f-1#^?M@?wTrNhjM7Rfc_*bq7XULpa9d32O0l2AS}dvG7VaFU~vb&d9GSnz^b| zCPwIJ0bEI|8HKx2vWj%3wrKLFk8NJHu2}lmMT{qY3UP(i91=B6GFZR=tpZXPG{Muc z(elL+fZ&&-hcLg55`VnN4O1#ScYnk_-kS5Ai|~zk@{<;sjOBc5Wv6vOGR8D10@|4i zXE?uU4Fe{+`@boiYwn7hlD9kAr<}EE2I&`bvz;rf<NHItoBkarR2NMHgpUeA5I=7? zN*lZ}O_uoY7_`Os;(U(llm5%ryQyX)XMZ*S4n9nqIGMT8(Ns!R<->2f$dgUF9%JHF zvWA9F@vl`W_A<Vi@kK;+WsvH^*O>sBfypR<y{O6ZA?p>_&uyiHy?IOgAzPj_!ta#4 zFY?zFDv)BZP!cTp7sE?o_U+&eK@nb-<Zt^ct3_t);lWb$9!J19!)a?32c|HZ3{HNZ z8ecbGFgzp%l{aD3Lb5Ye$)^p#VdBEYy6b6RVN36+MXQw=euR}rsGppZ6u_{ZRgo7r zmEvW7B*JRY0|QYbr6SCFNgM0J(E979LSBznibIxu_tN&sn)kr!I~bl-yE$0c5^{s4 z#k~6|;iBVl=IL7YX^1}kJXr@>zB|h2cq2jOP6*?1%)9lM7uh9x{ifSC|0`|Nv=?{a zG@#;(RS)Ss2K24U=Ypk7Z{8~oA?=1_ITxvg$K+LSP{O*<fR&LP_ki6hB~0!eC8O4o ztLhf!SS>(GKmM&5%0M(g+M*mtpWVC-NW+xc6mM#?iFrK;Hg-?Q>IQci!C-|38(^?8 zUDzu1YC0s?3L<M5huCnCeU8^-kcD#+kaYT8EbPsfKL#+Q<_t308PdEQFsBJ;D!BiV zXH1R5<diW_n}W%3vxg?=mhW+jp_nAr&gl{5paI_ZKKcx$P-9vjZe8$NT?Z688{7N~ zL<_mhYR2j7nt#sheXLo@*7JZ2tyFvKN6#7ld2w4X-w~?Pu;-0P%N)@%ui4PWuq5)z zBtETf$bx!Bty^cO-VEO0T^$M=AVvoWkj`Nn=p+|e-dT4J!QhlVZ9Lq2c6XszWM^nS zHfLTXD@0Ww2o54F7kj3XfYJVAU8qZSIyqnjw$+I~(%`1uF&ER}8FzMsvz15Msv~vG zIV3mAk&U{ujQOS`b2sDkvV0d3`;{q1sJ|&>GGN_@2{$2QL{mM&3_Qe9vb{3nFpWLc zw(M2^If%i#%~xP-HW&Ax|9z~%!va?4HI{CSb?EBBv28M<6Y}@+NHVHchK-HKPyQzX z%dCemT_L(NlB~!AshfTz-%3)VlMcd!H*x26t$|^=n`?>z!s)T64fT>;t8-M@g<j;$ zpx+&<MIJM&GVc{n<qE*G{RrI8MGq4=>8C()I|H3%aaytZ_>!T1O=M8iB1!7Qs(7-V z2aE&+Eo=?@q77A($tg4zI*ESozwae<r4TAc6F=E=2eyStYWk5P?E%}CD0@rNk!m*m z&dhG)%cOvu)9L6K4fQiWJ~{{!`Cl)lC(Hxxfyd@SMSVllH~Iv=ZIhN-n3xLpD*Ml) zq%g5{Z*%e2mxo**(We(G&xvjR1$?f%vA&aFw`rAoK?WV+{Ya`9$AH4bv;<h3VlsCp zv&D=%CZ4Zf+?TZgy5<iuwC$G)j8?4{lfRg}DHG(XDRjf^|Jn~|R^x|AuFz_izI?H% z?QhV6N<zcjXW<&*KGGlj)66hO;FNwv7M5luOHowfC9k>MRh;tS!)BGk&){X&fUU6Z zJG#;=HO|+XB|D%W+oae6McvM`$H<Y432^8$Y_^j!6^U4WKx|(O3LlQWUbMvQT@gOv z?1~k~HSc4d{`7)_>?FxOSElf!esxzj2A(%+^Yi5xI?P8$e(QyjP#F87S7Fyi=uOgH zx*{!oj0laEh(Op#S>$Tt8ir|6H-CvqF^0h^kKfhEDi!oN)eAbk049)aPTt&3ZDvp2 z{<C=NflD<8d|D?y!+#yTc=lm$CzEZcqwMTwT~U?8N-=Jn7OS+)Da?$7Ygg`VH*Jfj z_aX1h7&S=X&MdavxNw*c&Y0h#ALCT9letmDFjIIb+kLJYXB%!>cx*iTv}5Af`doYg zT)l-~a|p&madoI>!ZVj0&Yl`=Sqf51g3fUhN=I2d-F<4$BxpXRXvM$)&)FXjWQvCS z5YWR-CJ%0J`D~ieE|X2-n#arfkE2($+1bbDDm^v5Awim6_4A9h(WQ@h!R4}Y;qK}Q zGoS7fDFU%R{d^q&u9zu0nw#IzJR}Pm7_+JM3H{7hC|J*YH(Pi_+dXlXHL49}#o4BR zwjJ1JDX{+f>X`aj?FcUOlsO~cyD=2xbCA>s?F!hI%{k|z>*?_Fc{8&pGZncGhO;;` z2j5@j3CX${Zvmthxn@0Nd)iDA<rJZwJgu79<#~&=E3rnfIdr}{h`auB<dBlDhn}W@ zu#17{c*jk1zOgEJq^vRB`L2@FvDc^kqOL|#acpniK72Q}XLXaJJiTM=%B!DlS}H=c z@f?MIBV<{8yv_33(?-7*+K18#?mkxXk~G<>p29V#-63GlBE()}^^w`A%^{;H1@%$H zpoH3<WM}M9;Bn@8K9pDOaJn0!9GTl_3aZ$o>s-(Qb>}21zoHi}7Ke}Kxs`9bVvRnv z)0`)9$hU#nVFle>-{_UM%t+GfBs=2?a!tXJ=aaMB98izHQyrtyDj@0Jy6iJ_O0jYA z*lvt9d!71pcL;ey;^x(%<Qq%qzeWJ*RuG8h9Cnzqd#zih004*78YgyEwQs2&Ra;J9 zkUUpzF@}ACb+<E{+d->$TZBrXE_;gOh;CZw-aRfXvx7c|X9dD0>m!w1uN~CmyqpSZ zk~%?;Vbdm2Be|)tM)voon&^=vtRg7{C`rSQ(9z!rwW$;#fy1qCs+jP7yoI(2t5Ix5 zWzcX4$Bi?9J;Pm6Oa^W+4*sZb5>p_btUn9;JLXHl(N2@E32@ZioZFS9cZN9bCB`+h z2>Zm^1y?LC+V|Y3_s?e6+A2OzQz!+qXSX%#bZFvX`fnq0EEspEOv{z7^3l=UrTlWO z*JZf{WKc1UkY6+U?8u)ZNGvBa+m#|)7a+x517wfX#FJM0zV)VSzPre(TnVO?D3a2n zk4M)Rf^(zWzpjzC1K2X!v}ul@luD>Udz#wTYqb6G@v0Ak$qYhuCK<ZsvOf{K-2^R+ z*_%riT=W~)TL&btR|7>4m}v#|i-Ta0E2N^u364I3VTKZ)X?aTI6z!^BcxU2_#FHn3 zglnozVy-B%#b7U*q9H>o%uJ98J-Ea8b8^gwJSoP~OteRfEPiQTzt5E@`Bnw0S1dgD zU()|>kF7Q$(`;>p^!ff2!Sp*_SSm@=7(psJL9===(-_mkvaQK_aDA3-dRFw&7>)Yr zY=db*ceD=1b~TaxFW~B^?~)UuT}?g?6c)<waKztm0g&*j`*_(dA4-L(tZW7HzV8rv zI}#j=x@r6mMp2jpH!&NC;&=s@w8|cF#9b!p7ZH?O9#O;J`$AE`=`CUNra(5dRAK{U zA=@m~AujFgXx;fMB|$9Ztx_Rv0UsmK8OYDF9EIl4JrP8sn`3vEe?KZ_Q(YRAkadBD z>t5{?Cv||oWkq_iSz*&m|HXg^D7YgH95T$AI8T(tn+fmGYq=oK&Ty8Q-8_SddRd}+ zLOs?tLpztk{PsMQHe^ZG177d2CsWQ(4LGpsN$l%<s!rGSmw%ovBO;x^OM0iHv|beT z>;zvoV>evWZ7P!RKltYFR2Han3h_T6w~9di*<QgxOadTYRRr69phbdKkTP%u^n}k@ zS81BtFcYP{rt&?+>F}8=a!jX}p0(c?7cyHBa)M0$`O3y$gM1R?yzt?DX4<L{vdDH4 z+1-5zALv(k;vTZ`%&!E)n6y>s#=l%Evv}^9ioiVfuyxOt+hoEoVV`+o+H~0Rg9I}W zg#QfwYdN!DbNV)dVZ>PzM)soEpbKU^aq}LKFbFqr;~kI^u)Y1WiBcz=(&P?n%baFx ziy})qvtTvlS3|URvNmAXik__O;7(_F2G^GA6U@lJcqs0XIGU_YtiprWO6=|rU#1%1 zH2R^rZY%?VbONn?-IzTmI>V@TX-Nx&I`Ko4dBc(Pc=6YZ?D6E4?)ds885o33Z42k* z0$taQz&u|yot0x9!_47i)Mu;F<KODPcO6PG<_%EfP2K)EP6d1ss$G-1Rw&}`sNQZh zLJ@~e(qD8r&+~89_9zI8Ic>8ag%C1*fAd=oaY`Oa@R_uvZ?Xn!QV4cjUqOIcds*0S zsc3DH?i6ioM$5ud;)KpWz12b4e)@V+D-}zWP1HHY+l!dFhDGv?^gX_ezU4%ZZ4f>- zW$zd6?e{%vro4umETgS2qdn0-edM0CTV(^!@4CTW5=T)J^r8(WHUcV~HocHkMzQX; zaE?t`5ose@TLvrV_Hm}aaAsXnc8)oSikNVYv=CFmki>hdi1TOKrxI7~$~#QGSY79O zW#GuYVl^KxbC=r>b(u;#!ezjGhi|N>ds}bYf`I%mt##W~jkvP~)E8eU(+lk9+OObZ zvNjjp!P`W!{Qr_mm?&bR<?JoBXkXj4yu7qwulygz8q;>4h96D~m<x88Y$Fwk`U!m) zw@kP!>pJDD<u|0iF8Ex%0~3wutTWn>TUv9yL=M-P#ZbB*fBXtY!*0{jI9rQQ&mO2^ zU1_LknUS<7{b*h8%1`x70i(DFMU6;{<IUdPp1$~c;QKYE4Jh(BGOQaAIs=VyD9$|W z`0MFE7vB6PhTEML<`fB9*l(^~OuQlV3K;tR8(V2xoPy!g&Fe<Fa<603p5XXzTlupp zT0(y&6AiCk9|seQ<H0__grurup1Nkf+{Mi-g(5ZN(~t4QJBUD^ZnTDmvOX$5(%upQ zfH^Ls%YKjzc&Kq1^oi<sf4U=A8^zEIqTL+}Y*>grb<hJ!$)*94?SR0-tO%T1rD4Z0 z@j-cO5B8>915TAep7rpaM`;arG=e(z#4@LM_p1Rd{Zc)2J-g7-&TEr(8Y0bvCVo9; zg+<=#ZHH&;o!OU};OXKic!XM~+=^1=sl7a;`D@sI5*FC3v^meMMXd$`eTLW^Il8rS z6BFC&i-ZuA2v)q5hnK6(lCqw!4JnN!q{M@bm}FC#^d=9-CG!LEM=462AuF2?6P&+< zfDA?bt&ug)QBJ<=uXl{_IoCS!-pvude7A!<g}2|>?_H!HZ6fUEqCJ?cmvwr~s1VW@ zr0GEGEnMz8O17dvlK4V=Em4^ho}XWY+d|lbxOq#<dR5D&1xtj9$;F?h=lfqB5A?V{ zS}Q;NrvksK9)2S_#*YUP>yZAQ<-3J4TOYWVN#pYlzLsy>!?%7IrrhQR2xrhsB8kab zp_$?ulbxsj<t!dGt3h}Jy9TvFBu|Eb{By3R@!l?(k{Pp3&^S87K3nwT5Q$eVDL2F) z=%$ROP|dRaan?r1D};nL3&F}<;b2TUE*be1`WM%FmAlVJjHM_U&sRiw;-{!%@clM& zmRF(&M}n7n#x6jbw%Vrwpz*`^LBHNx)+E1=qNa2wsgBz-sHAy)6-Jvds)pRX%pU|! z=l)D-)1&R2hWU5X^(fyC(}Yw9S2BqV$70G!$a^Kq!z-D{>W$3i*o0TMObREgfWJn^ zx#wBSK$9B+LX&!rBz9%orpL+1jEB+ByN%G4fkEvhlO`pRs)|3)WsW9--pQI<`8zt$ zH>K(WY9ge+4<vpP(r;?xQ5t2_N~awZgI{mSyV5Sa1h_xX6&7A6E67>PFW0~jf_KcL z)zf9*EgmW1x3IlG)iW=rb18SdOh-edH7i6pL3_R~lOt4aeCeW&UMgPg&T-9yWjz?X zyO2cq4$jyQsz$iyE2c^#(%D~Ed6Lk2G%;C!beD=dC`QmQrr;~(Bn6joyFdH9X(+Be zC%uP$9oLXm$?`t<+^rt0Lw()RtaSO(%Dz3BCa7~yWURS7o&OzsG{UIjP(TP@d<x<# zLxaW%5jI0phtU2}ZUWz_*F4Y=;7jRrR2)=^J^m->>ZQ_FoAd0hZ)mVTXywVgB@ei` zwTYSJg)sTN{AB*U0WsukT+xmJapd${kN3}Zg;z*QVp`NT=QZJWg-TELBv55bI6mSX z2wWt1n>WJ)|2%#&uUOXAp;jkU#_rnN{91f6*VMVa8$V~MNIOMM>l90qSlDYbXBm<x z)+I!KCGl2C*vYX;px68cqJj&*SKl5?-KTY`X^l|HiXQ15qgRy&)d^|DOXU|!VQn9> zz7NJEh|yr0Agr25gdJ+V;2P$YjGp0C9CMD`Iy<rDaNJ~^pDqGVv+5_)Nx$U&He1`J zuVoos!7ygrL%-#7sJw=)<&Eg(A2XmFafitvhupD8nS=xu-zd$E&OV{PG#v#4rWD_G zwqSpZp2NdzqGzQYbWoW-{@@ESXcnqN$Qc7DGI#<SDN2btqNb~yW`7;!r13RJr@L)S zGZZTo=8uf0#e14@zBF%lF8H=H`ow3$QR8ubC&)@${KZrf)2*bzHygUnYC9Q~NRDXB zz|125CY;_DnUH0?)eG?Et5=C|q%~^s90nm%VDujF^~oPo2~ek6az7JP*_8DPl((v{ zGW@)XvHB#{r1Z1Mp`vX1JlLk%b4W*PNl}nB4&B?3Ku?3d*?VYNI^3XLE2pjH9gH>8 z)-jmrWW@2#vTwbxwwT}1A(uI*cx}C~ik%B#y=qw^+spYB+@|`whVDy)uhM61#MFoe zB~pyy;)yiSMI=QTm$UuLy$w6Gm5PZJ@s6yV0GR@q=-%<eaUEX^=atLi&ZJU9n2q{j zR}|^O_<q`(yR9Wlo6F!Z$7%1rx)LL3?}hI*${RjoTJM#72x=30?877eO->Wto&e|j z1l5+v__DrrM3<_VB|lAhtKO{A?NVbtP;K>3Pz<3-eo)N^spCaJ`0a=E@SmVvKymyO z2JiA3+;p)N#u+R6#fBx}<R)gMu4;S>CA&-8vkqNHSH8H9lKwt*FkPETw_FGP>gcQT zS6E`#&awFE^A>auDt3+B=JlOyL{H_C9O9Jb0rW7g@NWP!pZYKQ-IYa=GWVlc5d0lH z!;EmYnN|8q$^ul)nS9?#Yy9a+4ri$cUN$QDY1%G)_1b3V0*$v<oP;~1bZT^3nmaZE zDO`FrBn+IrJNwp$%$b01@&_Yb7KfpnAe9CZohJ_)xV?&u{oB(*pv>w=gIV<0yWE7! z4A*n7)t3q9)bU1afn9b(;E+T*yS27SXX=7smh&>U<PGl*9n4T0L>;QvW9E3a7{N(Q z{4G-VyyFco5$-3}hzFhC!FsIK!d(ju*=vfJsTvf4edLX|ufr$urE?kFvXASV<Vc{u z@r5w|O9I4(Z?B^YaJTZEB)1VSr>*2xpmR-JA;M5TU-}qf>*X*%%gG46=b(fmn~btl z_lhnpNsISPPow$_Ks!&eaG1m4xLX*=BlbH8eG1o=W3aBr-;4Ik8_Dzsfv%lKk7NqP z4-+5nhBxvw#S>D)jdPP5xj%V+>|;%RK9Jm%YSSOkzbmo}DU!^ray17lu<5SW)hr_% zqVCrY8VWBWT_`^FMEp@Dj$y8#r%O`eJxG=ocZ@SlTch_+y$iO=EJo%US9j(dPuF;< z9FR(M`%)H5RM*sStocz5Em<+Vz6rwI6qg6gNIHd)2-bWO1KpA;HxmwMYCVR2oo|KV ztJ6q(e&!u6L^B?1FBJp5>!qr0F-KrJKklGd&wl{vF$wR8;?^`O+1ci8tg>z<TU09y zF|So_s1+ne)p(Q8xv<I%C~Oq>PoP+)bze_ZylPCkrNFnD45jP6V=>_=1(4+Z_!vNf zdw=}PjmGkYiS&bEfTY!fn(Xt`1I6$S(nD5*r}aaxg<{i#sfCpC!>@(5+yUX}MdkoC z-2v0`!&QUY=(FDeRRxjTf$a1{+5yw;1^3*6eisB$g8}QKuEl}yW7VVk0YyxNRtc_8 zgjWfTD*zD+p`b^)0+HWma>0lC6K=0pwH9G8;8G7-93)JSVg=GUfLD*cHNYnfP!da- zjz$;GCKAGwk}s7fe^03#j{ME~B~zEDEMMwguJh1vRUumzrpz+N=+5Ylt?J07Y4&ij z*bo%V=-$Sh#bR%|wLGlzqWfiUdNiG>7%`inIFVM>ZWJgvx0r^?C|Aguzgn&-7nW8h z!)&0FnhZ*(-6JShjw*ebu9-K_>Jpe<&|<cmo87mex~aPP<5G2#inYBuq&*{AJf-kK z(M6sj5@NfAo3+5*#J}1RYK%pj-Kko9`P&n#bBtIukMZ<n1`Wqhjd3kEmMrL)%Y0{R z)6T#&WGSVvU}ZHl7af9Ew^F}UP5g3Q@(Ru{ZE$aJkIbgi27Ukf0(N4c>-98>i?|dj z<f(3c%I7IM_{isJFc+7Cymg6CD_b#5>VlMiDdxHNd=-LS05Hqsdw8D9dEM!8r3JYW ziS#pJS!vS?g&=8qnXdG38-qX2NYI~&ZhgsVfzYnsnMP^if);l$vtd~+Sp|crG2Ziq z$SnHX`}@2`AN1HO;mUD}3uY@a1VIikhyo))VPorj5p;*Vo#J4fbdVgH{qWQbc^G`z zS^}(MxqqVe{xBlB_8t6BHLL*F{R>7b6dg;hDhml4@s_BisHI>hI8V1?pZ3C>b1WRG z0}@MbI{_FwHnnS@#yx~<?|Vt<B7UgipzNS&sCMW|&2L3Pq&+x2kgyMOeDr$~ZZ83N z(if<~Ugw7Z7lscE+CZRth`TAsL%#>Z58V%666PO;47`DRY>^tT$Ol5vAmHlM&yhUu zU_5&6Xp4Nodv^#Tx7@Wsbg!UBc~f?_FvUKgsDF>y$8!Y8C=}db?Qn*!=}8_dB9wO` z1}-4>YgGexYIS=5)0^6D%|d_JaJonWYm{>to?i%5vB7BKe_#s*A-@@%W5LYC{a6YG za1@FDp9*5gx&I^nf7zs<BklCW+JsB1j>_jmKEyKB1~#+!R6YuUVFZ-&510Q4!wCAT zv{-mPsmSau7tfD2*jMQg>Q}@|2v8bzuJ(}Z=qucUKXm%=Vv%4|;f|#wlWQh}bfwj5 zgB+z+T*`<h%mhU(f5_(Z>>0>=8HGZ|cl$J)N!}od^y3l7^X5)+QPlqm=&=4TvvE>? ztiv{OHqXR9uO&t=XFg8jM4ZmC5Q9q*4!<l2anavx9hzG26`{O~@P=;O4La#hh-5FV zj{qIMFc3%RRA2d)bngel$b28geKoxRMzb+mlM8&Q5Zrcb5U`Zqn+R^d^niW=v&Rq3 z9&9yDxJFhmYd#O9mf#)EG1vIFEVRb;kd^;N#6YKFiEwXnJmrc<U55C{NwP6lyKY+a z6`&a00v1D)LXwbHT@WTfflR56#TumoA8E|j9Q%FB*SxP(qOUZlG=Kv$9>%mG$S3tg z)rLH?hCq%v&s(}U)%JJ!XJ6p>>SGFwDRCrds9!BGRi1(|RzGw%6jyH}6{KT15XJx* zH#SRjkbH1GbSjiC)W!Egjy#fI6-a<*lILH49m9CPfe;@&3L>I3{LhEB>c6zjLAYll zK2@!3a+1qmDlv?}X)ybl+xVIhxIRrlTnV*&u!64Gw55aiDBF|e%B2f@uzxZ5S@r1* ztr_^Q8GzO5I<oqW*Tgakww$NsdOS$yPBX&Y)UwNfJa$x*%O8XO(;yk|iJ;{dX>uWw zMCL}$A$BHqF2M2lsY}!?d=YdW1QQ9BOd!mPNQ_A8EsXc)J@^^_26~TU&*oqqV(-@; z+8&E|7K5Mr!03=ZpI*<EIhZMKrRc@7_P2)f>SBg9e>0_0KM?T?aulUfh;=)q)(p%~ zrl6b2XERvRG7#N|5auc>Ws$o;sz_7JU(TpuRFP+A+r=j)E=pL8m6Oiba3~%6qiEAG z<+Vm6D-aIOU~`33t$vbhy|Y%Z-?54?H*5yX25=;7NU8p+2P*XCb~vjq5m=E0z3!;C zYJAQ;p;UM>sa_XQ<Vucj9B^epK@0st=K91<wXqs%;&ily7#NCh|DWPH7`W5GAjf_o zE`8#x+E`gNaSGZ(RE+;WG30vnd&d9vE8oFumZ!SH(*M<LB(*AO@ptQC*v^^^TkzS0 zL-QspS$zysAV4A+f#Fo_NJdfSpYPz@GUolacYUnlaD$Mw>{C0Ie_pJh<Wdv)O>AQd z!7qCgj&zw_*9Pq?K~*CVw7wr0V+OUS(#o3JL6iis&@TYs>-D7eCH(#EnL;{l7ev#I zt!xS2cmZjO#Jti_eyu{Fw?C<u(;dk7Qs4-3VfQUeXTT4YtoG+MhVsCkfbpkh4xm^J z2AbF!57O2Ia1%1G0Lx-`ZA0{+-tZf0L0>S!JVS*(#Ri%d;j5F>Dp~}BGWzhB$;3Hm z`dx<d-m6Zu*JFcRjeNMZs3!kmF$NeKu}}6{pMT#B!ZcG74wZn2RN}36hSP2c0K0-L z*?emlN|2`?O>7~;^j_J*<(MT~a_{kpo=u?8u|TSt2GIY(Uk&;b6M{ivEs6<1XnsIU zUz_Yu-O7Y_o(Xro!$)H>U*kQ9W7c1ztn}Y@Q5w|jb}z$MH>c*<?C|J80W@hpFw|W` zUX4MfaZPNeykO`&eLF~*OLZn&h!4IP#=k=6NQuOT;j7zLJopQA-oTy=O>7T`JaGeP z{IM6<R6n`Hdyx{EqxT+B-JaoAzoK3Zzz*d|WQieVNhj{?QuA9mCfRi}**yUah!%!F z5F^~cs*##4kj7Udq=FRIXaa_`viw&m6d-CN$sv`xF^q}tRWtHoSZf08k4Vn)@u(s1 z`hFBuQKi~jQl=76Q>K2ID_8!eqc*{24|5C3d1tjk903d_a^k6DZSF?uBeGg@n<27Z zJdWU*V;O>s>%x%gAv#rn&kN?d_v4*4V=E^3cLCrOpzVGic>aCata<szB-$D*Hytut zG;mWU(P!WI)9L52kVdX%Cfz@}X^a&<&}jXOEn_%GU_E5J-745-YbQuDnjF0^8KVKU z4hV1GTsm5$MkrUP12Ja)Eu6wj(7%L{*mO$WZzaeyZ9mqKW$B?-n0<#%+!hT|3&0&} zaSJfO>4foxFGQiFI568j>H_&(<uv*^19^>MOyT<)$ub$Cd^G!Ab>7Ti3QFK7Dj~N= zXm_yyzBR#pKQ#MirveVydv6S2M$lBdk^k=%z<_&?caY+LFb(}rU6RMV_AR1E(ryvY z5DwpG0=u7XOo1Gc&&W5-?hkN#lzT3NgrWPP386}%KF9%fYL~<uv|Z3eb#E<|dJvR8 zl?wEl1v<^aoIS-=|9vakWf|qZ3T4&{Rem#9h@fnEwM_<+0h8RD`KBbbgZEcTE!=&Z zK#x6d4IC#Q9Ixt;;kKvvQeU~wk<<Wn&uY+Q5M$7J&?8jtXHjTY=*)jDu<*nB8v&u4 z1m;Npv3lM5pVfak-BfJ%(4<GixK$jMCrRssZ1=i6Q^9oU{-+>`Jt)(DmMi&G*le`; z@D40gD;`b%HCkK(6CFO^7c6Xf0HXX1OakJymMZ@x$oX6!cW=9a9-s5MFL<xDo1-s{ zGGZZ8W(fYj6X)JN&Rr0(C$dx>7`b9ZTP^5;O!-*YiON6l0R&ti7ouv=-=H#Z!{6Q@ zZpx|_6YpQu45F<}T+k`Lt+k_o2NHCvv!0U*NzE0BTs8?I*Z*{@<EKX)1@Jow^G|4n z%Riw5p@hgIdcW{@CL?dS_mBqd2De9NU<M@ysRqps)^&w{BUa2}h9n{N={u3_)UGX3 zZSPk65|)9*F#Vn(gKeQpXq8UNytL%45|OUrh!^-&zYyX;U1acDrR)OCF!I48aiPtL zpyEU3ylZPX|2iKMA=vJOw(<`N%87F@l&ei6DwBgINeFWyghqwRgtj1OAZz{v_AZ8i zH$@cziTMN*Nt{Xe{&@O5qtsy{NAN(4VpTlh{?FW)FFnv5)WaKw7~~CIIgJM|2pJND zQ^@ca5r8f_{?ETjDlUfA;#dm6Awi`cLDoC|C02Ttx*hEsG-pBtcKqYX6<CbF>pC7} zjF<O_H+!{)eA)M3MK+P5zW0y%21G`9Mm*6)WIc9FE+H~0;yUd{(nz*p*VY=_Kt`kt z$3R9Om^2W%?P!K0ZPaL67i9#x!~yjQ<Z_(5v)|<(ROKz;3gIhZ&+v6{bx4b!P<7wf zX^(plbnq$k+x&4k|80K$Z{94TXp-nWRnI@~(QBXJc6c}J=Cl9fz0GI;GYEJ8{xb-} zd9Aw)6CQR1v1e$NMgJLwC2oz-6>YufTK2koEn)3M!@$2XeXl<{tY(q*TIjg?KAqB? z{XZh&KnpG*-T<J*>Y=ulg6#tzsi@9O{$>{@juaf+WPhpy9YRs@FriRoPpaK1R$R(r z>nO88#L`glkW+*H7eKVbbq*m0k=z~f4DsLnx`Eu28q`ttAS^#eFyP<Q9CQf<4+SEJ zAoG)Wi@y7FgmVP*e0?L5$6VA4`tK;>gwjd0JzZg4JXI#F5H}S6KbJ%LpBI9h9tzRq zkP+n=`D~C8C5VzUA`2p%qOsE;9XVUr|9;Bs{vO57Qq0;-9sf9w<lPU_3YlBc-kJV; z<RW@3V~TYNJIaA&Wy+z*aOGPtfIYO09gR#I6@_fd!NoA)HM)j7=snmH3j7KEbDPv# zfE6*nJ^1H;f1+{se+*CT(@pFx_U^|K{fzs<?8gBkXEe=_ja3pC;)7h5KyFEo*bscW zfqjN|mlhbh2?~V&@5NwSTmJqNX>E(|clGV`8-GYFgvEt3!Y0!y^Lz0U{&Ka-db?Fr zy7}VZ-*jPd)cAH6A_$a32(VuQ&Iuw>IGPq#7W;;pO-pN{8gG_;s;SUWChdWsCf=6% zIvK=BJgc?4W^U<|A0OS&Kf;<_fc#fi7W_JG(@x*CEHlRryqOl$PqiqIs^K1Ac9vv# z)o4f-8rf(i0N4blW7YAK`?hCEyN8SfnxVy|XUPvTd&i=<fmtnVR8`o4nu#{Iz3QZT zFi%zcaB(20RN!S2)9)k+-q&R>)!T(;lxYCYE1(4cdmQqsD<`v{u@I*+iP601{zsQP z?+MsuF7&-Wf@neGh8!0NRG%{gL~x&MEga9Zws4>IHH0e)4`eo!N9(-KRVmU1G;}X> zA~wW~|DOY-0MZ>w4yfpf(b~CG-zW)N*i0zHT4d<|tG%~?i>iAYMJ+^05fG445s~gL zk&-Uy7U>we83a@sq&uV$=^=(jN@5tgOJZmS7;>mHh`z7y|9;=O-}&9|p6}dq&+oV9 zSx>FC_u8}KS!+FOZ+1DxG;0gX{bJ_g=<|$Kza0B)tzxnD7_<8Oh3e9?O5}_KciRR# z?R>fU$`%UVZn&!`syi0E)uD^p6IulqXp|Sean_@z`UvZI)zOSm&HyAbEi^&%;NG8N zWYV(Vve{86PN%5X7FhVSH*G&ME#NX`y)sJ~=^dqyTl0c@<$8VkmgY30g~gwR>ER;8 zeb-Gk5$V`R>l*F~thWny)!SJZNcCt%(E9EQSj<pSo#`sWY|MWMer16hp4X$N%~A;g zh=w>91?L?Y6PTg9hXK%vMT)NIz_P=D7S4JFwQy8i@HAI>Yl*_nsd7jMLg+Qr*9EpV z;3vM(Vu0?NJdt6*?RrDtZt4vMKS5AQT;fR+(Ds^uXoAQ#1CQ8Q%iJ9vj4&Vk=!9Fj zP3A1^^{pbh4l`8euV0(a7?ItI<J+T9Y3A@Rv%bmLhqIQ5ph!@SX?fbrnb8}QX(>kD zR$$z!LG{pB28rLUa#8*<H<y#`$u#wGT3mul=*oWO936?<NPyl4-^0jWg4EIPJ^X^D z5+*Zx&2sHOIyvWU<(6NiX;E45-KvtI)S<GVgLOX#Neo#<>`~b5J|wAVr`DBlFSad{ z;22(Cv#<y?L&`K~W)+x!4nF`5L~@moWBC}C+zjc9TmU`AaQ35VikhR{<`@&T^e{K2 z9K*$VXZoD|PAZyzb+DoBEi$x@rn_6l_mgkrHWRxLptH+bo95&%?H8}#1>}tA7+Q4W zM(VAVw2uaK1)1ZhLT+oNlcT=*{H4S~p0-NLcU^1=+BO>46;$J_MMD=Sg?wmek`h7@ z#Aow0Dm8D_>7!(r&AsW-z(n_vXFJDyZe4wBNu9HFbYB-}0VyFY{!eqmGWXLl9sMZ! zFu81F(;Tm1`4;MwVq4MBpej4gF29tE58gyy%P_mF;Fru#pw^+&n^}Wo6ZWLlJ)aMa zBP#t?7kSV|F=-Sq^^C|KYBKjWI=R=|W~{EahOQekIVWo~pX%^}^^T;@)Aql$G)g5v z*q92rD+7c_F-eUt>Qk3L?DzDpw=KJ?QE1%SibyR>wFB0>R-@MGbk?~uzPlSLtQVu} zrjzcy(<^DNmeE?GA;0E#RgX|hh7xAWb`uZKYMb%rq_zoMA8vd;s|SJq&BoXQC7{l2 z=7~37>$g(T&Vyop3(4OUFt9lGTV!y0E}TEd=1&)i!`Dnot~KB+z618KJF4e7)k{r; z6LJ>3ISdL5s=B*;IKS!9HVl<M4qbdJrQe|L=&5B}5E1EEoR`V#L{|9gMio;$i+}v{ zKC5F7Y{0Skt2eWT3l8UpJ(lDvAP>y><K@FtSVT{Gnew28Bm)Zi1Vdi$u#n~-_f*;# zb}Q0M0&vTzQ)no@8^Edka#OK9;~!J4#rO^njT`VhV{?55`E;IVJkj*CW5Qv1c~(C( zj(*^GbM77wR@l4DIb!048atMjp$RrQ$mn^};~Gm3Wi)p2aczjKlA6-!-Gq$SJ78I0 zd3W^q52t4P9gUo+h}hz%(~kr>REjcIdE#Mx53SPCCPdEK7^C#3xV~2m^kCaFijzO) z&I@kmW+AmvWR^nmQ8`)o^#lUsZCGMS$9=g;n5B9P2jaK`2KAzoCymL=L`<Y)*6Or1 zrXNX9+uHc`#Nad+E-n&lDr*<*RL(gMxU~o9h|l_uKU#N#jMF0KZfCyOn>Luj-O4z% zG14h{m5Rwl+}1A7Yl*AzO*6ZF(AT(KMH#ARe_*Eu?th}utQpg8N86YdDG3g?*eZ?n z_`1NfCPK7wTQHr-ibaoX`jJgP|9%ucs@l*WPTsEcd(496{4OPW<3{*k@AEP2)N2a9 zxlMxxxQ7Fn>RtxIJl7iN538Dw@O4sHxn51)ZZ1#eZ>|5UPakU#F|lCey({lCXn@r| zKSu+>%V%#Hs{PKfKV_u?f70<<2=|lFE9Bgb{dQ&lvP6s=-XUEsTN2)@zZ<`<Ux`LY z6KBnXlhn1?B(vJl53Ho~#Wl3rCi940b6aa*v{UO%<`E)nOk!tw-M7kjttWI|wgVix zv0^iHwz(5J-ve#qeux}>%N@iHPaOLW2q0}s(3*6nl4A)+B51)aX3<E@w}K@~0&a10 zOe99!K{SNHt+=FZQCck&3ys-XuFAVI+00f13KrNNyfxu!F)DsxH7GGu+Ff{`Ec<L& zrz)1s3Dij8=ws7&(_O?%)F{(c8Q!lTf7v;Jz}QxC{g)h8Eay+NQk_iOJewiD({p#X zpSofQU>`K0J~Fm>^Q8IuwywoFzUytWTTuJ0dm-4r21U|~=VbDV_E#NVNL#Z)qL%4x zRI3E9NhuA!hM}IF8C{hO`NWskERfGkWj@_x?nHk*y3fl@F0wLbu;{h;r`3T~bzD2K zqtEOz2`5`mbdy>`6C32W-r##YM4<qguq`XA``qXD7E#r9fs4iSE7R?t1Lfx1ou#^E z>5VG`=($!KIu@S^fTaZToovt%-^ZIPoPBCLY3I#K1?a8sqd$|8zdOnpqiGc73U`u% zXJRiczW$^_n>zk<W)M}`Y&e}pl*__KM*Nuiu-#uUj~UbnHAvOvx-8PrpsWS8tpaQ- zbWsE1jcfe0<7gDidVh|2Qvl{wp%O~6YqOjJok^`ui4>QXLo(-8yXC<F;Ipt_Rk5P^ zbfk4um`^0ibm-ncT#=jSUfNF2_v~7siN{zYeUs!WY87=P2Q7Ow+3aYaJQrHVMg;wi zqzU#aXE=bA#mAMm8ZpZm2NuUBcfX+#4vt_9cDYkN)(O2&loDbb=rBQ@Lhto7*c8fO z*IS)lL|N9#=>N1a-r?}O#ZPVu_flR1ZWOf;ShZvz?-M-*VX;Xd_ud+IJ2t*%2$$x@ z57Scrv^EOh1COI$1a+c?%%6n?RmM3V_?*pMbN$HXH>YVEP)mGUvPsDnD;c%R+e~Zw zFvL#MPVsQNTuhQN&B!7Jy*V4Fe(<%TOHJ9>YS)`^`e4B#hMBGIH{>yGd=~6R-%Q%y zLu#PB6`FgyvNj`L@>2Sy(NaivL#OhPySkAM1ygM%B={3FT)|-<l>N3?tYTSz-0oE3 z<PJ_$jf|pQ1DMcwmp?D4SgmDBa;nml?xIs?(NC@B?*4A8v5Wb(0;~z6g^W|vS3%gM z9bW<QObJOXZygf1*{cQayeDIfahf*Sc@Y~uOW$Ml0QXd6BEM0_2BsSanSY<+dt&T7 z$p9Q<(tu14+k?Vt^L~v9eI0^GDfFgCV_hkgKAVg0n^?v~fHbS9#xok~J6&RTWehoh z{7*JNq+QjF581*#rq6}%q-KA7+)I92(f~+6c9Z7$udXK+)%C~~Y6?EXNYqlO%(sBW zcO6_;fiIz|29whYI6pm%Fo}eoYrXdiS;g<F!4?-7N9NAxAYCDUf9i>lELT+kE@3g3 zJJcGFQfooG)kD3#s-&Y@{M6x<qU1-$c}hWg%BjbxQ{R}0v|DKgeUT?^4|W167^&*x zKwI24cmT6bX%gY8lJ#nFozJ6uy{iBC*R$gI{xs`a3H_V#Y%hzzV|ms38AJS#^z9Fv z@v2IKt3RA&Gj1?j<DJKFlbZQBE4tuSH6b3jo|oBrm^H^`>r<v(qOQB$0}B{YTlnYv z5^(%;!s1xgO(7EOnb=cHk?HFV3hrlKm|IbLnHs+>UP`QYB3Bj}{>F`Rxwe}IiK3GR zH{*Es)_#q@+xo74E(M@Mmu9v0yux<u_LxlVQ194rQ+oKhHK!2zjG2y+P0Y?0I}3V5 zuNq1I-js)N^bDQCV|96(Vg1K6m0c>w5M_z>+fvI9Y3&_rOG;w|Hw)*hMyXBF_h$iF zj1zQ41(C^uI@z)kp9|}X8&umfT9i$}J-ym(=K1q;^dTqD?B5%Td&N;nT4>`#o6~p& z7M5R0wGk7e50YukTv~h_xqDMjo2``{rdzr4HFqrRdb#?Gj;6T!<#+friL9dzDAH!y z0kV@>suUt;XEsT$Qml~A%M(q;ID*|ztkF?(3JlopxdszFe5uSMivDa5sln7Zy1YyO zf~k=PhG7&W-tM2(LxK8sS4@HMW9qKZBsBWw%x|VedqRbu{T)1b3x3*Ek8O#`u1hwv zvPf9lDSA)$#>{+n%JD_EYcT=7F6~}L(s0}4$zA~Kq_K`1SCtG@b*O3wu_zBn?TX@8 z9ZDG!Sm1ktiFgkc0LO8o#dHb)2_aFjmcXBeu{lm*Gpe|{EVD;>cAiQN2emT0*tvFW zwE7-tS;bsAD!ay;do_zXMmp>%%vkh#m?(#=HO~b^G#E;(pA0w+-ub-f+0U&RW`low zSLw0-gnL|igUr{`PeJ^l`}U4;AYOe(H&Oc_<AWX|C#_riqcfhsO$ayeZ5_Q6MfOLF zq7!^7Cqto!O9&fVA^7d(UlDuP(x0JQTD6!><Sc5AfCqc+D3<xlYK5{03Hp0%(&`Yh zU=X=1O~+k5xT}$f5d86-G|IyJ@;&*&uYi$rIJ!UX=%K9@Kjn8Fb@$&!WEfC9H=3I# z{}u>?U#D-9w%fp2rCmq62u`LbQAfgX3}2L@MhO46u!+Z5&wm<pJWK)`_lhl2>{tee zPW^I5m>u#!eW)kalRC(seKv@X0zsplJe5&;bt-kEk2Pp1CTX4M+EH_*Sdh;HGa`mQ z*4a9JTd{56g6;0jRy%<gWF0s6meBXGlO1qbCWNoa;NB4q5;tJ2MrVk#6nvyUx;t!u zdt7hu^Y0OzW8t|G=4)gS@^IcDC!be_JW(EvvwiXU8(E4+KO^VW+7G_!K73o7k+B!e zQ`8jR><ySe=g$jF=F7pptSmS=yn76n&ATsoz#;0Ei_F==LTxrsywJO9NIwRoy*89- zjsvOsd8?7-K{P>&3~dEVouF69-Q{`lkj~41Jb$P8)azh2CwQ!Y_Q^<oK<@ODYR1R{ zhKOY8E_ht+^T_>9!{$E>JCsG2dL6yF{AyCEGRHx@5M-w~8%=-T8~6%kWVpP&=@j-U z*JZ$&C54P8&jUw%gO^~v_QgUQlIc@=nGzOhTgfE|X=-E3A&)&RY)9t5Nnq@Lnu0sS zyr9Z@qSUsnf+gHmSFGA&^P+S+lefdTi1q=H;O}Y4<>J8HBi9E%ThGts03B8wSbU;G z-%vp=?;eG9`mV}X0PNKSPEORqEeLIW@zZ8OzH^1G{s?_V-BQU8L8-|Xn9+EEviDW8 zGOpdA_xqxOwqyKCPrRH%$?9YGoXWJA@Ng8u;_k_)KFOTI_N{TJjbN214e;FTrmn+N ze?oPU6saa8^R}l^b*(t3mm=)IUhV2nB|{A@mxJ-pY@{^tuuK-SrFDLK!>ZP|q#|nM zZC}v%RR`jWOj639+LuwuwjT}RlZYuZRqcAECk<yJ#I2*%kOPJ|lIcie=cBq;%aWh} z--2!h+l(rG<~f_;{$0ByA+)%=1&Jd&B_W47T}Q@svKn5ZEa7`NJ9;Dta}ty}V|8l( zB_shPd(;z|Sdd@nzx%t^4YB;PibSk`wmFkT_t$A{U9J!47qCm&X717Bf2=tB%S2Ri zu_<QR-dfZ%e4&&HIw*^sq~A9S!v?*mofD#M^s-2cRv%KbOJg~hjXZzvYM;iEv%0<* zc5v5de8;QZ{)aWCN8m|oLOuS;(WX-xizbb6r3zcPgUdVI?_Qfxs?x=%3EW9*LE=nH zh4gpY>`FH2ttB(gWr|$bA2kkF9lrGS=O7MMG`S~$iDNhYd#XRd^3$wKcBmlQSilB( zoodx6><tuT`I_Sx58P&Qc<%A5B(LkcNLVk!2XA^crc=r^Cetk@qH|8K6kENbMz^~& z(psrTIbCk+#X9kgBGPLPa=blpEuLVOS^8?3ROv3m1~ORpA3(1$!!A4PFsdl0$FA$o z^(!+eW_9>admYOdHQAZFxBu5%2cgBQ6`d)51qw3lLC+<F?NJZhG+U`xIy1Sn3Keuf ziq9CYnvQGc!ngxrMjPiKVaA6H0Zo}+n${nLUkB-kS?T5)Z@}o^AFnzfL8W4f9g7$V z3q{eMno82h>$Y*W+K*2y6W;U=Oow31-2Zy-yh4_wIxcc4`s*WIDeDs{^})!6p?iN$ z^Q}?eF#dCzuj6txGTG`#%wf#T7R;U1WAwkA6vl2hGfh5~Rq0-icb7z$6Ra8f%&34i zNY+(|suBFInR$wj+4D!Do@&r)Wyz}sJqVg$rpwl^dur|lC|5>)$T2>9X1+-jGeGr_ zTGA<>K)0P*-$RT#)16u{<GwiEDqhT9fV8_9HQ<Hn0M*~5)@zhc4ZvKDjY$<1f-n-j z|1$4l_Xa-xT{F5hML~wY?tIEs%OWWq<!g!>R@(DLP?r(Rh>Ve?hRdq$_P)*DF7~_} z&zJgsHAikfcj)G*%e9=tb^dF<HPYiy{`V&z3<baN-#i&78H3h=)4p$=eU&&^K%B9F zDW4s#$31zfD^e5b$XP*~cJjkPc;OV-etZ^!I3Za+Y*_~WP=RhP1$m)9(7gATq0WWn zSA#PJ<+BxDZ#w&yTWRRaM{{McbI40M?E`0G$D#3!X;tS3h>=;KSBuC|DXQ(G0~|e> z&daJnEUU(;Qu_U-pT_8sSWoiG5%kEZ$7VMf6;t`&2!AS{fS$eDUfs!TzpV)%<K%is zV<Z_WH{X;ghEP=z<y0CQ7Bf`G|DY>J;Qa3p5N5VtIuK^Z|9frH!vBuWX{-_iKq4IB z(Fn+honFwg(~Z+Pu~{fw)f&r-Ir$PaeBVu%{&4t7wPyQ!EpYLMYvI&~3?cTB`6?|i zW_Z^A$^D9XzC!DKQC8J$a)~4tV(Xa*`l7hx$yQ;wnWJ|XKk{RI*7~n?i9NsTEO)L} zB7Akzfsh4qu#5O+47`ti_Ooz<sP|VYy{}=erF;ip*A~s!6Ib~Rjl>kwnAZY`3N9tH z4(qN-RhJ6$ZNGVc5estP_-6JCsVvej6=pQQEa=Yikq}mdNQ4gKajHoUX^=Pe4qag> zwguLR{!}%sf#2&QcoPnZNRKAHiN4E~r1ZbjC>c44{guH#2*CCTDz}buTk?Of{~|hO zJpPu1OYEDy{tfC_^?sv&Gyj*u7GF{kJp}iC{~*D{Vc#FFWA+cm=LpQu|0P&cW{VP3 z+z-M1-$NyA-WW~)Npjd{Mv#X7L*u`SC1AEFLWTR#t?#>^1VuaFZ;WF%Jpw)SAHx4q z7V|^5{_nvOdK|kM5pkuxzc8ZEI<rM_sy~JQrK~)ksxJ>+3%>X)kKaz!CPnQp%;kT% zu0}d0Wj3c-;j^578#rodP@L`)@a=Z00%^d!)tvg=?NnvbF?zF0cD?WI1B{1%6VA|w zb0ybtNPmLA*{B4r($;gd6+XE`KT}Uy834+CQVwoAPh4jDD5(6G<njtvYBMetb6&Z( ze?~Nv5ip@A5U<wwlK|F3Jfp1zh$ki9lF*FKE?z&3Dr2gHDLXvC{*v{i%S$Z!B;fgB z>Fhd6ASnjE6tF4^rBZpK1asq(4B+s?1Ft%f#Rcpql<?2TuDFm64>O^eN4q=8>kGW2 z9S%j|%Q}=$uu!Ulm%uVIfcg+mW{WCz>N2H<{l5wp4jm~Qb5D*0r+>*y7lqz*dbLKL zpc3wceG1o~yd+#F_CJSRCjV3Xk9?IDg)+XA?s!tA0$LHFt_>0KOA-RJ0n4Oz9#l4f z*3HoBdb}#``2&fmnE;GGiOIh-S{Z)H|7QJ>=-+30a$RNnmxdh6$StG)Iso%$6%IKz z>|sVsYv-gL_d-3FO&bvGv&RYW(;gQfj9(a$a>e#{5H3%pgq^X#{oO9H^RsQZzqhbM zS{fKyJS!ao>h%H=>|_Q|il088H>KFi3{G?Fg9@ymP<C8o0{U5x9}p%Yj7X;>KU-Om zloaMe_V<T}0Uh@;Gyl6RaY<{$)4ad5**%a-gHYFb(}TUtd`h`9vo%Q-;Y4KrkZ@*x z?`I%PQP?3bjhExy$aN4-y3-4gPy)e=^=n$_eSE)I*9vc%k^g^!weMX*HTo5AuoLo- zmC?202cE2h*~I0F%Qi7UgmQs##YnlVo2Q+$u){TTpBP?7v7kHhXchx=x3J{V`Q7=n ze-9)-vRt?fy?5t-qp5f26E0b)cgwhNP+>mm5zgKDPyY%E<{zQL8oH8j08(TK_x@wz zr!QGvy*K!Dr}+_{uSmbv<kdQOh+3P-FyE_1gHNh<_X_<^kq;I}s~+j=V(t!C{Eq0* zm3RZXL|)raM}lHr4XCB+Xaz>vP)pauJYQ9NBBlL{D29OUQ%_4rJJR>Z73TFxdpgqZ z^cS{DR^6wZ{)14R_=EU|<R3)RIL5_aiH(2elw5h=;b&sj+`?8A@l&5P8PqKGKNs*P zgIc71gY{7{>WlJ4dg0BzC1<2PzfJ`vYFafyF^yxi`E6`4vN)uoMT0-2Vz78}b#$|2 zRKC$BSHJ3t+FN%<I`N;?qyVR{*e#y?^|dK8(_t8!d42x?AvZV8`okWe0F&0r@MM#- z{Y%sq$fL$6M<U`M4f2D%6eV#UtC!PF+W?2(3&Pd4S3VL`s23KqRJ?tb7gWWr2Fmo{ zuc=~x144xbA7_ESF!YI?7yJ}v9XB`GDf(EmQhtS}@3~*PQvC*X3WVQCAJ^giZw1;( z4eRiJgPGF13!yACcm8(*M;FIQcgT6NZu&cJ$K>LW4K&wkkRN6F1x%oDA9}ucH~wu= zbantbaHR>C{OGf2Dg%K-^X5=2`qnj<F7}t`fG($dJ426)6d8V)(XO)DGHb{;)MWT^ z2k|d<zASzCb)n|Bo5L4wK3j40qLn5>@}7;$P@Qp8-El4m$K(J<ryq4KTXBDZnCB9I zxcH!^L*wXcRbG5Yl?wjn<k+2;em*~aeB_&&p7NmG95e`-m~XEh%Cro@NgiyD^W?LY zNAF$zw2a4?dA`~tOn#Jm^TKg14d-;w$D40k0sZ_~!K;?-JPqlbjao75|JenHM;}ue zpT9~FR)+mV`LcTqn+sk{XRf?mTz%Vf85Y5rQT;hl%VF}V{CsX(E0?rg&VMN2<wT)^ zUFJU%|CQ6*w=4gn;qu}UpQBhmUuHS9AqJ8Ep@Xo#^cUDXN!dG-M*?ZQ8f6xq-73DZ z&;6ANwDL0ee+e+4fh+QJi>c!G9o<pb!b_c^Vmk;sRd~-`g+iDT0#=eH2l0%++xU-7 zcwhF|zmH$K!`hAKd`{KMAQ_+;cCV1^u@>)3ko|kJr91sOco{KNV)T*$YX2hW`d5Lk z^WU89cGvfJmhRwn;XR3_5_>Kgpcr=VGuh*pyf5F|{}KT81GZ0I{;hS|aPJ@Te>dU( z1HtyX=-(H-x~*+B&-YdHR2$1;W6;3w0fj=PS9^--65SF3v1iOrZkz{e_$|zXHaZvP zImErncTmTiI|63~<WFIC^W5S1jc&<DkOg~PM!==dmc>tQrm}+!105&59^)CeG(^cF zOxYniF>{D48<scpb?IkKisGw)+2kMN4o)kVXH<fd5^MAS0NNHKyIg%YHq)h2v=Ddm z!Lr+Qij$tci3*C#ch>|&QfTrJ?}zfKuX36I^+qY1s%~Tr<>xu2X7xsa4xVzRWx=9` zJR=hoq#?g{+VWK_g|Zv%6w(G}tI;ZYRfgPx_!N|uY1ahAQ*!qXHEGQ+3y?UJ<COX= z^^jwyE;qYkv_oD6VQwKL2g%Jp=BTaC&A;H-PkXj@z)@PC8@MSbX9YKZ<DuXXGpLj8 z?>b2_Z|z}ggu7EI*y?&vGC9?90umIPIJjp%DVk-C8&Ua_Fq#xSHNge69NaUSY?&+( ztizrZ4Y9^$trR?cHr4|0y^MY{)<%C}tz(z!S42HBbT3fvOrj=TNOYgg=-|Hiq)d+$ zGi!N$YtO-b_Q`_T`*A;?p0C%+n17hp*Q%4e!te=XK<6gav#N02J)t#t=J^%a+Z3G@ zx&*+p?i;8Lp0y_68a(&>3hZr4&H{@DpsGl)w6OZB<PMMkKH5nB$Z6sQ>g{AWbH~>O zgx@vX)UkU<k7L_*y@;oY5WRZ-nmXBB&>zefjl}8tSbfa5SBT)d!$_B7i?do!$vxeM zsdFZM8}B$kWn(w@<V6;og62$WR`3DpI55}6Qz*H@_wT8&KC;UO-ON5g^&q*Q;&HV~ zSK4QYsTqP~!uexmiqf(S2}(YHiso0-B}Xx&T9mG5r?}=Ot+-B-l`67!33S0yQYf7= zdl{huyq)D<3$eQN23*hBhrP-znif1V*ruGjx?xu(!fWFdBUrxIK>p;7T|hwFW6j58 zVYql;Ua^p-dw3+Gtu#1zX*^=5uzL#HqGBCbc#XW5#7>fED*)#gL0|fKp4&fQmh1`8 zA>at|ZxQoglYp_H$7-6Qt>C}%2>hLg=ls2$--PVm9!vjV%Qw*zu%RpQNB{p!F#pv* zu$%&wXGWoaVC5z9>k9qwDB19pL#bPw1E#kqB<2kN6M<MG$&<r3H)H(q&g=uSHVycA z<@?@WUow2{`YJFK12<@*T;hiz0mXkN_<&wdM4BfMf`Oa()2C4c|8}%Lt1GdeKdVIl zRs56qe-jW<#3qvxQ4kd0-k<4Mnu&tgxv3?_CbJDJvAKlc^9%R75VnJ7?Y3N!Pso>n z9sd!up^Am+Fo`bjkiS=d`eEG3@W^Eq_Jc)Na!J|xj*Z=YV?-0+l=6tq**9<OZpIs$ zfS{DD#i!IX*>9aaBO{}tlP{@UVyPTdu<a#q82md3ItEejiO(iy0OVz`2~`G_{pN?u z){=5Qnp?#G1hEf6A(tC(1|cgk#QpTUo=ghWtTO=tfgZRD?Ewwpc=$wA&zK}+bwc8+ ziGg7#a$))-F{>TxoB1~zFWLhFgYh~EsUqpy-5D;GxJlmBO+HwduKcCa+S-Ov*|E{S zOn#N>Z<fpC8x-Nn{<uBqF6)eJz>dkw5N`ZSUciqaycR;LkMt5)>X#|uPg`A+o?l*| z3hzx_=sharGl@MpS@)na(_ikb3)^J=%RKt3K`qW?l?x^0{+m2j9ftfklXhca|0XM$ z8+YO8G0w6bPk4(PS?_`^g+GEPx#Nex{}`*IeIHJQNryVS72e`W23ugE^grh5=`a++ z`ORXN^_rw<slyl&JjPPtg|eVty;8eF0-Mfq;udNdnm)o(aamyRku!K;e8g6s4?lhz zkF2!*2qy2z?7`Vpjl)uz-R@-B$4<j?V9tXh-o_Iysz;8{G-H(~#ttcY|8{||Sx+^* za$b^7ntU-m-pz99)`ptXMe079_2vp6ocMF^^Kh(N@K0~AJGVdn^7}C`x<BON!`5TY za+}6Z(PfTZR#muV$jkM|)KKDa7s%}$nHTf(me;~><53&XMA3#5FQ)yWELWS0D2&5N zFwGq0KM|i`zUG-?u7|mn9P<-fE2c{@L0gp$TiZxBr^uBh*to6mj;2{<&ivBD4*KrW z=j^AW^-ou`HrEW*9M}p<b!|;>5ah$hZ<_dP&vj^=cM$cP94cNjPEz+l64{i?dDZlA zIW_W44xO!8sT>xR%bn@DROZ)?jOT1=nI_d(rdY2PIsIQ5379B0m*A7hq3?ZG<pIfp zLpstV(-pm3hxUYLskW8*`Zu6l`!aLmCe*8$I#r3zYwFGAa+Hi#*{Z+Y<cU99=YrL6 z$7DQ^m)`MY8P>o3;z725IZ)Mvqi#URnd@PvZoK<`HjcF$U7r48H`h;_XS(Bou8_N5 zazSaqcuso}EFPH>MTVeLY_yFu+7;(9Gzm4}<YgVOQ*5-3G(tJ@SVxf!qNXCi$*gZf z^*b0S&BJzj*=f>Z7AHX6PnH9CMb&U^#`QzK#{yx_R;YS>4Y%IE%?Nw1Eb*_&5kPy# zUpbWrl>bIm{#EVYWb{~UWrT5!{_?h5SqMALx@mCFYN-L`0R8tOgKIK9YUW1Fb3OHz zf=@2*M2q0TH>sbF4)AY1X{aL_l((SDE%%mj{4Q@C<;*g7i~4Fyvssqxve2k&i!-aN z_t)DgL0*6SUGB>}>UsV1aggR+7G3<xRpXcZ=9<RBJ3ckV#$mS?WKNO;*V|)nhA^TN zYvZtdAv1W*+mvVjPHE{{X4iFzn42MV=sjdz>tps!L&aVcELAGuz)i$83VwsNQ6XHG zWeS%4D)`NwI`p3VVX^i$B)lG-{j=Y3;*m?xn<i+ct8v08PaQIr0&{S90cfE2@AC!| z3n2DC&KtDo?hQo#z156~)Bo+a6GCs|)wv4tHWBg^9F{1Iw49Or%)#r3N9Jc1E7#cx zqwPdN<(E6TP9c0v#7@`RaMO=OR2nyJ`%rz&biZE?aPmibf~Z#Gw(Y0kei3%uArwqd z2&S$N&J<rHh*BHINvyFDG~1%iO?E`J%!Ewb#Ni?DWMt+a=RT4ryNCBJanT{bftzzA zU0A-R&5tKgz8<!1C~p+9TtWPyD_6%5HdF;Ycq9<7wJd@{Z2M%<E|bZj%r#_%zaOR} zlTh`Gi-yf+G~}Um9A6PvQG(uDHN;g~u@PD_^m*1)W33O)&fv5%8=-%NSw*@z<ct1` z^pGT$&+&oYmBvP9R>SqOKNDYyEoe162!HS44#C-1uyPA6Zk!E~{o_c2X-Gkb$k`V^ zP}h*>*_Re&f8elTzNl$?HckqO3VF?XJO)j^ZRGz%fK1&Z#W(-fqcUIU9XU=1u}iUy zgjMTl#lViT>~ywO*mkpcg%}mc%)?0E9w<0?O0+j|bcD9w=0&>o)~lLibNr}$*;}tW zLSY`J`t5BZiw;*JOoQe$i+2l+o7h|#m{}@fi(j4aaErY?YJhCllOqB4o%2ikAlYOn z2Usn22VLY0lh!<pyj@-jKEGl^B~$VW6h&AV@ua$=S~V>8yVeub<gbpA7kOwqNakTY zB7>jZb*sA>V?kF$6YuU;-0>60PS97%0Wvr-KnmMwO8oc0gx#KaA@6Wht<t!Y!IJ6C z$PMYYnyPpNu?ykH=t9y#`nz<id^Qd4VEK{Hc?Zp#hY9;4v%@(0_Z)oj)_9rZWgNte zQ=(uivB%U9yKmJZy?lXuxr#qP{q&L^1`;C$kz0OMz%9oYCY>A|we2yTsLyhMZ2L5* zR?Bs~?f^d;+KZVCb9ChOIGTsCCa4aQEwpngLvJ0UtfnV|*zI#HI41F0+By0AE8G%d zaw@8MET~uAC3Yc5ah&4LjiWgH&yDfDBrm$8NO3?vUi=^Mqse$a_RAQXzXY5KKMnLs zE7K*8m5RZ^Qwp|)l2~RfK9jbI<vd`s3pRC3po+^x>MgNJQp7VSGdN5E>MG0<GEoDq z0SV_uOhqf3|9NPj@%(#+{K802O3o_#{og(1sY20_WC_Y0m}-DIme>8&p?%xWZqmQ$ zcmFuS_0vg9HnlDGZc7kJPNm4``|kIu^%=a`he=P(Sd%pNjDs7j`r{apW#amkE8P#g z#xt0;|9{Wy@Np(H`#<3F8Laj^`;P{;q|?a^N0X@kihxfe%V#)nH%dO<@mm)DvlN!q z_fr4DvR!#EN<+r?qwlW2JdfkI&-geg|B0+(7oEq@tWo}=8-rv)muq>b!>@bHJhRVb zg*>(-er$)0+54Xtl}>&37I6ZHxE9MZ$Fb$Bbdw{=zb}0|h;-;)T16ceOzMQjEkl;R zE$c?=_i7TdX)(F1=yU0B_2~=7@~?gWeS)wL_crPT2F^#+;fuS@K1goWIR3rj{F%qr z^6ay=EATl0kI-YIUeYj&W_ls_l#n#ahL_=qD#*!F-fZvHrsN<WB;%}iW1YY_OJs<4 zRLJ-RBrCD8<dONPeT(a1x%y0l!87JV1ZHGqQM{mgEt#DD=X``|vcl%^hSl16l8Fj# zadpYm4?@gHHE-m%x(@2%GZlCt^nj%0`Ej{Af11{5!uU`({kbyuQ09zi)JtcJEk%v| z{M7ewyKK$3?km``ZvVsKNR`XhN-j)m7)hk<v}Afd(2vL`gsXHP@TTU%!hl+99vCB@ z4sMgwaMoR+1ENX$LH+UAh^31v0sS8Hky)s)JJnQDq`O_4)fX=&K&PpR%AkXrcVhR+ z<`l_nq71b~1B=u830Yxe-Ch#M{>D^4po>$e`lSjKvJ?tLG7o#6n3}3kp7!X|9gb#& zV7f1~xxrobE_Bx}nw>7rBISayjC^+XT@NZ|16-z#@iLJ{IT0}+%h95vo)72!EH+He ziv$lg#=N=-Ke!zmtADNLZ8UR9pc1CxhR4!#EpISQq%2p{&<G1N7jxuVT@Z#1_@3F% z4UX#n_|8bjKnGq53imRpJ)b2E`&L(0Ru|bbpFHI|&2IyqM_Lvyd#m$Me5W5z`5rk@ zRe1CbGHR`D=g=H9OzE^WuKn71u%qY{-L$u8J}H^EO+1_XY+;!4BG*#LZqsShdsii` z;YXS<VjMbMefrGQa9pm6$0d4t?^qjf@@>;)3T!{DTL5n`g%FJvX?p`CU>}*Sr=ly| zy5ry{aTgVw{HEGl2X&|9{Fqzb>9(U=8S{eF*~T7+G3u|kE=IliZTt2k*NsQ%i{Q0- zPG?Q~iR=DFqq@TOXJbx7`yUG?_VGs*bOAL$7!tfrRHR=6TtZf?a~D<VG&&7eTj&C6 zfy>DHb#j-O6OlvFE&pl%sqkt_Ct;Y-25{<(@KAkPp}G+U95{12RM`SlH?E$?o|qq2 zO-oKetJ9o>mw_{9z9-^`E>p8k-q5qi6XQerEqJZI(?!!+;)(y(=(Mo?#hBO7*~i+6 zGyFq^X+VuP>>PYTw54C;y>wo2!o5{B)#x-@Z8;67^<F-&KOt9$Sr&ncruqx|3xvB; z><hqnH{7NWgiv)s1=j|c+W^7|s*(zDZCE{yT{eeS2}%k;T~qf3mfdC$zRTiJ7lGM* zPbeaC*%(Tn3ir_4KW#!JF8imB3JUL@jyVh=KITp!@SzHV0Cynl7`#lBs_zb5I<8pe zPOTDX+#hna5CnJtmyhe0$pJBkB5=_e|9bzra97HGA(-HX*VG9iT)kewwGrkuaN-14 znE|*quAapnn!~H=CF`KBY5PLUUNa}YhvIOTy4igo^d$1o7*0O}_t4)zZ#qdl^q(26 z7v4P|^B6k$ST%8i4_BxMxO>A;UrHyM(RcS=I;%M3o~f#9+#hkZtOs~_FQ3&PrhEi& z)eUXiw<wU#><u4TcmYm;%O~~ll%`CdjvL|Vsn`NUu0q={=h~WF&K39l(J!{QDJd>m z4lfoCA^wS!=0MPKDXaw&&h4Fj90;RHYMeQJjo?mf96v3D<t8;wduAOcz)X|UEP)Nj zA7DgDjf1DtFgR!9(5XG*FiGF~Tm)eW5w-%>A4@`nZG<LHB^;a(3W?qmrzQw!qW8>c zFifB8;>+<Uq|qE$a9jo9gj7HP+!sa1hY&bf0pGz~sehQD=SE+tWSF4)MyZj1xFB$Y zzN5i?BhW~n|KM%6A0uvsz?6O7QbeqzHiaec)UIo{x>m!)u2^>zqdvgx%MvN$tktnv z_aNh}4e!9NY<D>$v_fEZ_hol5<E;6yP4}Ueo`oBDDJB+PRX4Hg7dxs29NTs84%Y%s z*@KosW7lHSK&PN3NNifgY26YLW24ovYIm_VaBx?x8=!5WWuZM|bFAA9*PgknhDM1c zMBvHe`uynCcK@7Fb4zoFpZ;AS=aJa9WiySRJ}!{z2r^gYtAO4}E^y!T*^$*Ycn;A_ z<jZ`!k@Qq=U8Qg~VC1#9B}K@H070P}kCwx8EyODjEZYpy-JhtQ!8sc~Quna%SOf&C zFoWP`au!Qk0tpI_?LaUy5G>S8&Itsg=}%0Pu$&1QIc3m7Aj}}l8JvwMf=&yuZUzBl za00|Ffux1`fg?jGt+0_(CN0E?8HB%o;)~g)U;l)EMg^{<C9b$7W#EX=!$L0xEe{^8 z6Iajyeg8zUgk@U52#`_h<Spo6y?-J%1J$pN0NJ%p3e7eL`zHXBmf>QSX{dyxg<ecr zC!U~#4`!Re{S$C8%SO_|Gd<8jw%KNP|Aaa!VfaYH!@@HW&_RXSCT?a0swCb7g=co4 z12fP;sF}4B=zykw0#%aPkdbo+trLXVCUZswswC%hS|{sfn}Cc8R7t!ib@vOmzU0;x zG)(L6%eoAgPpd+m)CFgC_g}gU2T!Zct`;F}T!v+)RheDX>j!lAwOodird5UEMM!a% zm}HGX-F;`5VR$X2z|h$o|1_>w<H=|BT1uqhp{QgnrF-T{AJw#f!?4%NtHaOgHMsR7 zUMn=y;dOmy--D;aJ#$YY;Leo5yp!$BY5&F<uOm`aH12gYIqjdeE_CX7XvpgbI@xKN z4sRSfJ1UqCzeqp%-aRb|obp;UJ7m{i1;W;+p><pu`*Q}vqJFCWw+kppzPdY>td%x@ zY4KAH$5rz(E?Fz^Q&qrH^RnI!MMs}?U4gA*s7-mM^kVO(%@els$1$@y+Jh}^27>f= z4}Cj7n%9-Duu1XC@t!uv0T>IOYnxBek-!<W=v)hFjYDoMjNp>A_hx+CbfdP<=}~Ea zX>ojtK8PlFJUUXi?qE;(eLO<l-5T|ZZz&T^V?#YyZ(SW5)p>JORK@9!53pHMZ5M(E z*4?xmOmyXs6_~U?saH?O$7$*)zgBy#rpXX)%}br_R%L4Pkbk%9c?p-Px?a9ge3ggf zcrREs(~&DeMMp;i{EXSOR`#ugp}eM^`S?_$$$2+nu(b11G>I`aZ><c1+FFN&_Mx<X zj%<3nFfm$f)w1f>Zf-{*IgrWz7MqdDmuQRw7|Aj3hwOp(!}RP}34`_r4`Qd;9gZq{ zdg{vdsm0sqF&&(vA4*1s5VR<BjOqc8T_Qu^4DoUMZ!u(ojN4})O2!fgn=DCl5xw<X zWF2G~g$V1i2JZP*ph-q%zn0$BqK(<ZJCjuI`bKl1HVodgShxw!&UWu^?|@Lnr4~CM zY{>G`E>YP(J-!(%SFa=8^$n}Dc9F`S=lFgi_?31;pN8FHnHxk}N;7NefnBpWZSW|C zrkP?(c4U%lXs1IqJR?;dtLxd|zy|_N9*_R$5V3XWazbR)$AZD=r@RgCf*D`QYsq<y zl9C-olCg$;A1|PWK7oGv+D6G6nel;$hK8D1uXYRkl!`2l|5NgZ;HdjV)ldDtM8UH= zmFJ79XY#>sbbZ@!1<VJ<XEF*xvrgX|J?O1j(Qc0r*J{h|#2oEk3EtWlB~y^r%;>0y zp%3%akfw&5%)Z(5qK%tQtS&vA>J)}dOR-g@B$qw4n~Wm~B$bIJm4UT;PHZfql|#<w zqP#QbnJ28C#tqP8;q%_F>)HvqbrC2%s+XE>4b#7iW^xDFbQ<YhesDTWlyi#ByMBM> zq;G=LedE4S&Pq??MX#cW$~l*vAw&(ToBFv!NJs^$ET1O0`F;L<pt3SRGvng~(`xq! zwKR~&O{B{|{|8*H*k}Gdxe1$a8FH5sqyUzcYMH65_|&Kv50-_W4)Df+<cp#mMbe~m z&@e%0-8RSHdjhJ=Oj>1(TeUg7TQf&Hgsc0CvT^k5k1D`+VN}Krnc78Iv~Fzn1WU`^ z2H7%4h|JCrjD_GT<F8uv&g+T%>NYGG(xb4iDYP1DudS>KIl2zEdM96(=zbKCi-Bfu zb<vNNmWM3%irHJv8{9Cy3!ID_u^Ou}-zO*CVyo;WNH~UWG}mtF)UOp`OSma@9>`Ji zwz0)NfGx!?S>eyJ)NMYe9cw5{xAMd3aI4LxT!dNcb22N0FB3(x>ad>{F+7hh1?`<a z?-~olmoYYj(nILS<6I`U%6um=Fzuyd5;oC{(Zp*VFrcP0l_vYv2?e7?6Ues7vdSWz zD(9Awo?-1R4to<!+of^-YU|C9!`i$?>mMQOa1Ln~STq5=m!2_&Je+-*t;_krq7chP z-$yVO2@Up-QVwp@^E$t8Y0qit=seQKbM{W7RrQn=V@;zM36}{rQiXk_#`#SiMm%cz zuGvs-rmq*cppUO$(oIe|*ijrq53tYE7Ah5FuF88Vd91P3ms^uWh8~jKn6s^ykS~pa zdEaz#Gg76JDEa{r>@|}M!G`=|!IQM~{z&y_;Zb0%O3>FVv%@f9?FO=11{bR+@pl9+ z#6+Ah<a)*Z9~PGFHBO|JGYv4VY)Exuo<UVaEj#m}4}XyJUD|f%b9Qc*V%jbUZC$<D zp$%&i$QxD?p|1=I7M1us-<zRq=m1!iCt=2LknUE4%6E8FNtK62*4LU6(UhBv*_w{r z76pHg)9zFKu%{v_#@KW6rvE^|$OX^b&(z$g<sqw#(lHUj8O|BxxXWC?Q3)e>0PjiI z@2E-8S;eWXQfcY&VeT=uHH*txJm|7_UY73YuZY&kwN1hza0tYvM&oyWrPA%tW$*IP z?PT$pLt8>s49NwbgD79Qj!^&xnsK}RLQq0Bnu(64##4mCx$JDDd=&jfUFUZqHRoQ~ zv-1=2)mF6Z1Z8!@nTL;mWH|LD@&jr`J=EG$^y{qmC-}EyLzLO6I+2rGb8|!^)?+1G z!R<s2V)@C|*>5(IztzHUDZ7{6*z3vLXc}hQVYfi+>7=n#=-C0x6BYEPhX+dovlS;q zo%KW;sRd7608)Wi{_GbMS`qh*Esf_JPlAJ-N%*^+3CnB^$vxUIrmuI#)H2pDVPs~# zB9PDfvH{x~*6!&GQ?z(HU03+FO@L)4iK{FGvm?f7a*K%cVXZygebw2BIPDUdYHsOZ z=`PrG&q1BFhYJI<l+H?bdn0k1_|o#y@HrFJ3qyIER5rsEMfKQM)V=YHVAfp4+an<Y zo271(<V$GA{N#MSJVIWfnNI=wBKeMYI&y7}Ocze)qRPF}_$*J_)|Z3Tl3n^fI3S$w zg6I8O6_Z&4?P{I1lt5YOZ=UJb%r<0vtDm?qu~&-;kXoE#Ufk@auX_$qHB>s59YOP7 zHYP&7$6adXae*F*a}|{QM7Z#SE@f)tgG$Hg7-a(n9$`PG)RdR{Qt}M-kSWwPEz zaF_2%2{rm^xXQe7t9cc7Cs<k5BG!0~y6l!*^eeD<(aH5#&EU6$6|J9)95COjvUBR$ zD}|O3*S>XTq~`29$POgb>_XqW7%j`vY0D5F^_Qy2<I`{J30fUMxG4t?JuW!!=CN(Q zFV4m^NH}>iWILW#@S_aVQsa>fXHmzdrx{QVLH7wU7;;D(IVaBP)7Yq6Ymqb1jW0JB zl6|o(9e4ggTBSnyEpq#%Lk_Yr%HiC`M3>uv#X1MoGbEx6^{i-P%Te8JgEu*+UhR_i zhcxZS&V`0FiBwz?q>IrXF#A=4bFzzLEM)}Ud+RnX0Gmq;w(3tGBn8TL9E-y@RAFIW zj+?p@E4X?Z6bK#jr#A4Qgbn(UUhVd0WkSw771{5M4$g~D*%wvZCPLVY>#FB!S_h81 z4q5RE!S*nVi|sh3%~MOJO_ZP~JH>lzpf{mFx57CG^L*hrQa!D)C;5dhCA3d3VOIez zXfM~!07oDXHUo1XrqY>I40llEKU$r~5Q<=Bf3L$IC-<YRTp@o{$_Mkz<!s|7KiARX z@v=Spk_vN)SJ?nh+0d(F#|$uc)~Q36sj^VgE;s>mDz7T3%yZ`r?-3fLnsxy?z1Kr+ zBfmk;fUMqu!`v!tJ`V*|AmE<+$IEUGZ4pBV^j-j#=ee5T=12lfBY47QVHJ?z939Qv z1CX6(t1{JT+O8`Mz$A5u8yPUs8R|kgFLWk9UJV;Y@Kq<&ZGV&KzPUtRJ~f*V;p(c# zaDy?d`@-3*e^cU#C}v@#8YEUPA)-1U&-B^ugJ%}6ay~AKVLQ&_lIEo{m=<c(N>7$5 z-Y4P`OR7&LjoI1Qb$t{5Rw6?6uK0r)z<Y>TudXG&TuLK)l))S<<o)sTbItk#UKl~I zHp}cO!mQq7A1!k(*L>26Xz1mt|Ham~HVwV;q6{xIw~x)76z6?)nQb+`=^s59@;Qy= zx`;+oE=DJ!oe<|0z|X7>1&8N^_=~#<MJcR<m9oyk(Obhr(;hi9Cof@(Z>J|-h4k1z z)4tA*IQy9JO&?i4>?u_smGIeiVTw5RO_r5(tdpqpgHU<L1MN|2zHH;VaGs>`Cj$`X zo$1(duLx$SQ~gP5U5K1d_`04<;7*pC*lT&mly0axSMBv(W)iLCi<bo#EHkFB-jKd+ zJFW*&QOZ8OPb4otp2%8T8yhL8ZQd(OQ(bbBKs*-hk+SNj>Fz;0dEXRePi?p?_E^<+ zels+*ADBAslDEGvKB~uYFcsGv8w5_ZyweSBMN4HnKi!1c*QT+Y*Cc7@In8jX98n?U zQj^P45}DHYd9+XMjZ&9(Z4$`AV~3wzPQ5btf$2?ST!Z9M)n}&_<=QFiE^&>{Hg(lc zjXQcI^7<+roZ(;R1gvR^R2qo8h-h+ql!0CGG$<2u9<j{i+2}KOUO}|=v<M>m)xh*f zI<GE(yl0$#v6slnaMu^1{z_s<9KmHc`s_9sQ``&so-Y&byRRev-RntFp%#Zs*JhyL zVB0#_koVl@h%A$hX^}?1%;w|Xx@mjUjRkQ;2Fb2Z!eao1_g#`GrsR2y<=c=&GzV&u z1(ncNx+hBRqZ2aAmHy^|3=>RgDsG2$A2gKSaE$VL4||OCw-Jm-vAVn^e67P*exEs^ zU}v|YJVpm;N)LXGUJ$J;2-y4r)}6|VE*qbg1_#q?P*LY@q!hT#PK+=6sTRO`rD+x9 zfqGRR%_Z9EOnR^aV)*D}+6Tt5$8VvXEGu8o5uH~B-?kV5cea1k8KnlYY1mdoaGYfA zL)&$%y)CoI;&n^Nq6aR3&2O?TO2g9GgJZ@qDC3XC7c3U!jexmH%pG5Q;(B-8#>EAM z;#n;(hRaiqKa155^jWui04^e1b4p>oikdq@F-!?n&uZTlysdU;=EtRBavvXVXUA;q zq4ig$kaFW#DsAg@pA9se&*&FeJ>%P=9<Xy^p`I~b`yn3KA`{QfoS<2*Q{z07As!bu z;7iT^o?L$KL~7x}xjrdbqwl-B%iZ<SMd7Nkl+lD`X1Ce$RyhI&a5_L&+8Zou*J*6u zFN2?|pcm;nbez;0{-jeTl6e?>M(MacpT>SDsO=i4W^0~-(EW%bGtv^7?07Ksp=Ho= z88*90biZX=oR`uSmo#`LDr#3qxOpS~<gQ8QROm{mQ12!%GG;xp^^5Ii9D|}GtNhk_ z_G|iyb#J%uq{JFHn%%zz=yxhoG;~3^gPE%L&K%<8ZJ+PgEf2)$xvq-ybtrC$va76R zm#@bZn|w_wcsrsM?DRa29k(OxG<~a*;ix(y+9-bVZH?U22e;KA)Ekvup*OrAhiN_U zfI(KP5m6Eutie%4McMckFV{18DdST_9~7mfG<g$V%sOca%80TOgepkCQ7U*85L^*d z&GR~$41+IF22DJuw(f^dHE&Jzo%yPYi3#``z!9%U5Nv+`q$WBwY7v%wSRaM3ksgq^ z>1$x@QemPfpU3Y6a2fjgfV4(xs0B!l%aA&x?O-O^4HiqWp6^jZ>{*VIsXZ(AwMM6z z-!XH4?P?-!0VT2ARnVNfzteK#@U;YvQ`NG@1&&+a%lg)5nb(SMHAJuj8Vg>$2QjLs z7W^2#7%A}Oe|O7ph(Esa30vX|vdTe!iN~D0&iBdlKEVRy{4E`c`F3yax6eAi-s~e# zfh|2NyHPTCa>%*g3yN->sAsQkV){0xBY`vZogN*d?9L~uk_{%fQCtgLiSTZANo3S@ zn*!X)k$N_g0POH4u@2V?1KV$pL=9-?ZI45A2Qknj7A#t?8+kihO$S=!DOhsso8Dxb z#HxN)t=3f0RB^Kiy9nQw+;;liy6-xg4z7;y9CGgVb?&Be9`XCUuqMZD@_1m(gPn^A KVan(Gss9a8mXT%v literal 0 HcmV?d00001 diff --git a/simplepie/demo/handler_image.php b/simplepie/demo/handler_image.php new file mode 100644 index 0000000000..49c3ec89b2 --- /dev/null +++ b/simplepie/demo/handler_image.php @@ -0,0 +1,6 @@ +<?php +// This should be modifed as your own use warrants. + +require_once('../simplepie.inc'); +SimplePie_Misc::display_cached_file($_GET['i'], './cache', 'spi'); +?> diff --git a/simplepie/demo/index.php b/simplepie/demo/index.php new file mode 100644 index 0000000000..1481ba9172 --- /dev/null +++ b/simplepie/demo/index.php @@ -0,0 +1,295 @@ +<?php +// Start counting time for the page load +$starttime = explode(' ', microtime()); +$starttime = $starttime[1] + $starttime[0]; + +// Include SimplePie +// Located in the parent directory +include_once('../simplepie.inc'); +include_once('../idn/idna_convert.class.php'); + +// Create a new instance of the SimplePie object +$feed = new SimplePie(); + +//$feed->force_fsockopen(true); + +// Make sure that page is getting passed a URL +if (isset($_GET['feed']) && $_GET['feed'] !== '') +{ + // Strip slashes if magic quotes is enabled (which automatically escapes certain characters) + if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) + { + $_GET['feed'] = stripslashes($_GET['feed']); + } + + // Use the URL that was passed to the page in SimplePie + $feed->set_feed_url($_GET['feed']); + + // XML dump + $feed->enable_xml_dump(isset($_GET['xmldump']) ? true : false); +} + +// Allow us to change the input encoding from the URL string if we want to. (optional) +if (!empty($_GET['input'])) +{ + $feed->set_input_encoding($_GET['input']); +} + +// Allow us to choose to not re-order the items by date. (optional) +if (!empty($_GET['orderbydate']) && $_GET['orderbydate'] == 'false') +{ + $feed->enable_order_by_date(false); +} + +// Allow us to cache images in feeds. This will also bypass any hotlink blocking put in place by the website. +if (!empty($_GET['image']) && $_GET['image'] == 'true') +{ + $feed->set_image_handler('./handler_image.php'); +} + +// We'll enable the discovering and caching of favicons. +$feed->set_favicon_handler('./handler_image.php'); + +// Initialize the whole SimplePie object. Read the feed, process it, parse it, cache it, and +// all that other good stuff. The feed's information will not be available to SimplePie before +// this is called. +$success = $feed->init(); + +// We'll make sure that the right content type and character encoding gets set automatically. +// This function will grab the proper character encoding, as well as set the content type to text/html. +$feed->handle_content_type(); + +// When we end our PHP block, we want to make sure our DOCTYPE is on the top line to make +// sure that the browser snaps into Standards Mode. +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> +<head> +<title>SimplePie: Demo</title> + +<link rel="stylesheet" href="./for_the_demo/sIFR-screen.css" type="text/css" media="screen"> +<link rel="stylesheet" href="./for_the_demo/sIFR-print.css" type="text/css" media="print"> +<link rel="stylesheet" href="./for_the_demo/simplepie.css" type="text/css" media="screen, projector" /> + +<script type="text/javascript" src="./for_the_demo/sifr.js"></script> +<script type="text/javascript" src="./for_the_demo/sifr-config.js"></script> +<script type="text/javascript" src="./for_the_demo/sleight.js"></script> + +</head> + +<body id="bodydemo"> + +<div id="header"> + <div id="headerInner"> + <div id="logoContainer"> + <div id="logoContainerInner"> + <div align="center"><a href="http://simplepie.org"><img src="./for_the_demo/logo_simplepie_demo.png" alt="SimplePie Demo: PHP-based RSS and Atom feed handling" title="SimplePie Demo: PHP-based RSS and Atom feed handling" border="0" /></a></div> + <div class="clearLeft"></div> + </div> + + </div> + <div id="menu"> + <!-- I know, I know, I know... tables for layout, I know. If a web standards evangelist (like me) has to resort + to using tables for something, it's because no other possible solution could be found. This issue? No way to + do centered floats purely with CSS. The table box model allows for a dynamic width while centered, while the + CSS box model for DIVs doesn't allow for it. :( --> + <table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td> +<ul><li id="demo"><a href="./">SimplePie Demo</a></li><li><a href="http://simplepie.org/wiki/faq/start">FAQ/Troubleshooting</a></li><li><a href="http://simplepie.org/support/">Support Forums</a></li><li><a href="http://simplepie.org/wiki/reference/start">API Reference</a></li><li><a href="http://simplepie.org/blog/">Weblog</a></li><li><a href="../test/test.php">Unit Tests</a></li></ul> + + <div class="clearLeft"></div> + </td></tr></tbody></table> + </div> + </div> +</div> + +<div id="site"> + + <div id="content"> + + <div class="chunk"> + <form action="" method="get" name="sp_form" id="sp_form"> + <div id="sp_input"> + + + <!-- If a feed has already been passed through the form, then make sure that the URL remains in the form field. --> + <p><input type="text" name="feed" value="<?php if ($feed->subscribe_url()) echo $feed->subscribe_url(); ?>" class="text" id="feed_input" /> <input type="submit" value="Read" class="button" /></p> + + + </div> + </form> + + + <?php + // Check to see if there are more than zero errors (i.e. if there are any errors at all) + if ($feed->error()) + { + // If so, start a <div> element with a classname so we can style it. + echo '<div class="sp_errors">' . "\r\n"; + + // ... and display it. + echo '<p>' . htmlspecialchars($feed->error()) . "</p>\r\n"; + + // Close the <div> element we opened. + echo '</div>' . "\r\n"; + } + ?> + + <!-- Here are some sample feeds. --> + <p class="sample_feeds"><strong>Or try one of the following:</strong> + <a href="?feed=http://www.詹姆斯.com/atomtests/iri/everything.atom" title="Test: International Domain Name support">詹姆斯.com</a>, + <a href="?feed=http://www.adultswim.com/williams/podcast/tools/xml/video_rss.xml" title="Humor from the people who make [adult swim] cartoons.">adult swim</a>, + <a href="?feed=http://afterdawn.com/news/afterdawn_rss.xml" title="Ripping, Burning, DRM, and the Dark Side of Consumer Electronics Media">Afterdawn</a>, + <a href="?feed=http://feeds.feedburner.com/ajaxian" title="AJAX and Scripting News">Ajaxian</a>, + <a href="?feed=http://www.andybudd.com/index.rdf&image=true" title="Test: Bypass Image Hotlink Blocking">Andy Budd</a>, + <a href="?feed=http://feeds.feedburner.com/AskANinja" title="Test: Embedded Enclosures">Ask a Ninja</a>, + <a href="?feed=http://www.atomenabled.org/atom.xml" title="Test: Atom 1.0 Support">AtomEnabled.org</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml" title="World News">BBC News</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/arabic/news/rss.xml" title="Test: Windows-1256 Encoding">BBC Arabic</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/chinese/simp/news/rss.xml" title="Test: GB2312 Encoding">BBC China</a>, + <a href="?feed=http://newsrss.bbc.co.uk/rss/russian/news/rss.xml" title="Test: Windows-1251 Encoding">BBC Russia</a>, + <a href="?feed=http://inessential.com/xml/rss.xml" title="Developer of NetNewsWire">Brent Simmons</a>, + <a href="?feed=http://www.channelfrederator.com/rss" title="Test: Embedded Enclosures">Channel Frederator</a>, + <a href="?feed=http://rss.cnn.com/rss/cnn_topstories.rss" title="World News">CNN</a>, + <a href="?feed=http://digg.com/rss/index.xml" title="Tech news. Better than Slashdot.">Digg</a>, + <a href="?feed=http://revision3.com/diggnation/feed/quicktime-large" title="Tech and industry videocast.">Diggnation</a>, + <a href="?feed=http://www.flickr.com/services/feeds/photos_public.gne?format=rss2" title="Flickr Photos">Flickr</a>, + <a href="?feed=http://news.google.com/?output=rss" title="World News">Google News</a>, + <a href="?feed=http://video.google.com/videofeed?type=top100new&num=20&output=rss" title="Test: Media RSS Support">Google Video</a>, + <a href="?feed=http://blogs.law.harvard.edu/home/feed/rdf/" title="Test: Tag Stripping">Harvard Law</a>, + <a href="?feed=http://hagada.org.il/hagada/html/backend.php" title="Test: Window-1255 Encoding">Hebrew Language</a>, + <a href="?feed=http://www.infoworld.com/rss/news.xml" title="Test: Ad Stripping">InfoWorld</a>, + <a href="?feed=http://phobos.apple.com/WebObjects/MZStore.woa/wpa/MRSS/topsongs/limit=10/rss.xml&orderbydate=false" title="Test: Tag Stripping">iTunes</a>, + <a href="?feed=http://blog.japan.cnet.com/lessig/index.rdf" title="Test: EUC-JP Encoding">Japanese Language</a>, + <a href="?feed=http://nurapt.kaist.ac.kr/~jamaica/htmls/blog/rss.php&input=EUC-KR" title="Test: EUC-KR Encoding">Korean Language</a>, + <a href="?feed=http://mir.aculo.us/xml/rss/feed.xml" title="Weblog for the developer of Scriptaculous">mir.aculo.us</a>, + <a href="?feed=http://images.apple.com/trailers/rss/newtrailers.rss" title="Apple's QuickTime movie trailer site">Movie Trailers</a>, + <a href="?feed=http://www.newspond.com/rss/main.xml" title="Tech and Science News">Newspond</a>, + <a href="?feed=http://nick.typepad.com/blog/index.rss" title="Developer of TopStyle and FeedDemon">Nick Bradbury</a>, + <a href="?feed=http://feeds.feedburner.com/ok-cancel" title="Usability comics and commentary">OK/Cancel</a>, + <a href="?feed=http://osnews.com/files/recent.rdf" title="News about every OS ever">OS News</a>, + <a href="?feed=http://weblog.philringnalda.com/feed/" title="Test: Atom 1.0 Support">Phil Ringnalda</a>, + <a href="?feed=http://kabili.libsyn.com/rss" title="Test: Improved enclosure type sniffing">Photoshop Videocast</a>, + <a href="?feed=http://www.pariurisportive.com/blog/xmlsrv/rss2.php?blog=2" title="Test: ISO-8859-1 Encoding">Romanian Language</a>, + <a href="?feed=http://www.erased.info/rss2.php" title="Test: KOI8-R Encoding">Russian Language</a>, + <a href="?feed=http://www.upsaid.com/isis/index.rdf" title="Test: BIG5 Encoding">Traditional Chinese Language</a>, + <a href="?feed=http://technorati.com/watchlists/rss.html?wid=29290" title="Technorati watch for SimplePie">Technorati</a>, + <a href="?feed=http://www.tbray.org/ongoing/ongoing.atom" title="Test: Atom 1.0 Support">Tim Bray</a>, + <a href="?feed=http://tuaw.com/rss.xml" title="Apple News">TUAW</a>, + <a href="?feed=http://www.tvgasm.com/atom.xml&image=true" title="Test: Bypass Image Hotlink Blocking">TVgasm</a>, + <a href="?feed=http://uneasysilence.com/feed/" title="Interesting tech randomness">UNEASYsilence</a>, + <a href="?feed=http://feeds.feedburner.com/web20Show" title="Test: Embedded Enclosures">Web 2.0 Show</a>, + <a href="?feed=http://windowsvistablog.com/blogs/MainFeed.aspx" title="Test: Tag Stripping">Windows Vista Blog</a>, + <a href="?feed=http://xkcd.com/rss.xml" title="Test: LightHTTPd and GZipping">XKCD</a>, + <a href="?feed=http://rss.news.yahoo.com/rss/topstories" title="World News">Yahoo! News</a>, + <a href="?feed=http://youtube.com/rss/global/top_favorites.rss" title="Funny user-submitted videos">You Tube</a>, + <a href="?feed=http://zeldman.com/rss/" title="The father of the web standards movement">Zeldman</a></p> + + </div> + + <div id="sp_results"> + + <!-- As long as the feed has data to work with... --> + <?php if ($success): ?> + <div class="chunk focus" align="center"> + + <!-- If the feed has a link back to the site that publishes it (which 99% of them do), link the feed's title to it. --> + <h3 class="header"><?php if ($feed->get_link()) echo '<a href="' . $feed->get_link() . '">'; echo $feed->get_title(); if ($feed->get_link()) echo '</a>'; ?></h3> + + <!-- If the feed has a description, display it. --> + <?php echo $feed->get_description(); ?> + + </div> + + <!-- Add subscribe links for several different aggregation services --> + <p class="subscribe"><strong>Subscribe:</strong> <a href="<?php echo $feed->subscribe_bloglines(); ?>">Bloglines</a>, <a href="<?php echo $feed->subscribe_google(); ?>">Google Reader</a>, <a href="<?php echo $feed->subscribe_msn(); ?>">My MSN</a>, <a href="<?php echo $feed->subscribe_netvibes(); ?>">Netvibes</a>, <a href="<?php echo $feed->subscribe_newsburst(); ?>">Newsburst</a><br /><a href="<?php echo $feed->subscribe_newsgator(); ?>">Newsgator</a>, <a href="<?php echo $feed->subscribe_odeo(); ?>">Odeo</a>, <a href="<?php echo $feed->subscribe_podnova(); ?>">Podnova</a>, <a href="<?php echo $feed->subscribe_rojo(); ?>">Rojo</a>, <a href="<?php echo $feed->subscribe_yahoo(); ?>">My Yahoo!</a>, <a href="<?php echo $feed->subscribe_feed(); ?>">Desktop Reader</a></p> + + + <!-- Let's begin looping through each individual news item in the feed. --> + <?php foreach($feed->get_items() as $item): ?> + <div class="chunk"> + + <?php + // Let's add a favicon for each item. If one doesn't exist, we'll use an alternate one. + if (!$favicon = $feed->get_favicon()) + { + $favicon = './for_the_demo/favicons/alternate.png'; + } + ?> + + <!-- If the item has a permalink back to the original post (which 99% of them do), link the item's title to it. --> + <h4><img src="<?php echo $favicon; ?>" alt="Favicon" class="favicon" /><?php if ($item->get_permalink()) echo '<a href="' . $item->get_permalink() . '">'; echo $item->get_title(); if ($item->get_permalink()) echo '</a>'; ?> <span class="footnote"><?php echo $item->get_date('j M Y, g:i a'); ?></span></h4> + + <!-- Display the item's primary content. --> + <?php echo $item->get_content(); ?> + + <?php + // Check for enclosures. If an item has any, set the first one to the $enclosure variable. + if ($enclosure = $item->get_enclosure(0)) + { + // Use the embed() method to embed the enclosure into the page inline. + echo '<div align="center">'; + echo '<p>' . $enclosure->embed(array( + 'audio' => './for_the_demo/place_audio.png', + 'video' => './for_the_demo/place_video.png', + 'mediaplayer' => './for_the_demo/mediaplayer.swf', + 'altclass' => 'download' + )) . '</p>'; + + if ($enclosure->get_link() && $enclosure->get_type()) + { + echo '<p class="footnote" align="center">(' . $enclosure->get_type(); + if ($enclosure->get_size()) + { + echo '; ' . $enclosure->get_size() . ' MB'; + } + echo ')</p>'; + } + if ($enclosure->get_thumbnail()) + { + echo '<div><img src="' . $enclosure->get_thumbnail() . '" alt="" /></div>'; + } + echo '</div>'; + } + ?> + + <!-- Add links to add this post to one of a handful of services. --> + <p class="footnote favicons" align="center"> + <a href="<?php echo $item->add_to_blinklist(); ?>" title="Add post to Blinklist"><img src="./for_the_demo/favicons/blinklist.png" alt="Blinklist" /></a> + <a href="<?php echo $item->add_to_blogmarks(); ?>" title="Add post to Blogmarks"><img src="./for_the_demo/favicons/blogmarks.png" alt="Blogmarks" /></a> + <a href="<?php echo $item->add_to_delicious(); ?>" title="Add post to del.icio.us"><img src="./for_the_demo/favicons/delicious.png" alt="del.icio.us" /></a> + <a href="<?php echo $item->add_to_digg(); ?>" title="Digg this!"><img src="./for_the_demo/favicons/digg.png" alt="Digg" /></a> + <a href="<?php echo $item->add_to_magnolia(); ?>" title="Add post to Ma.gnolia"><img src="./for_the_demo/favicons/magnolia.png" alt="Ma.gnolia" /></a> + <a href="<?php echo $item->add_to_myweb20(); ?>" title="Add post to My Web 2.0"><img src="./for_the_demo/favicons/myweb2.png" alt="My Web 2.0" /></a> + <a href="<?php echo $item->add_to_newsvine(); ?>" title="Add post to Newsvine"><img src="./for_the_demo/favicons/newsvine.png" alt="Newsvine" /></a> + <a href="<?php echo $item->add_to_reddit(); ?>" title="Add post to Reddit"><img src="./for_the_demo/favicons/reddit.png" alt="Reddit" /></a> + <a href="<?php echo $item->add_to_segnalo(); ?>" title="Add post to Segnalo"><img src="./for_the_demo/favicons/segnalo.png" alt="Segnalo" /></a> + <a href="<?php echo $item->add_to_simpy(); ?>" title="Add post to Simpy"><img src="./for_the_demo/favicons/simpy.png" alt="Simpy" /></a> + <a href="<?php echo $item->add_to_spurl(); ?>" title="Add post to Spurl"><img src="./for_the_demo/favicons/spurl.png" alt="Spurl" /></a> + <a href="<?php echo $item->add_to_wists(); ?>" title="Add post to Wists"><img src="./for_the_demo/favicons/wists.png" alt="Wists" /></a> + <a href="<?php echo $item->search_technorati(); ?>" title="Who's linking to this post?"><img src="./for_the_demo/favicons/technorati.png" alt="Technorati" /></a> + </p> + + </div> + + <!-- Stop looping through each item once we've gone through all of them. --> + <?php endforeach; ?> + + <!-- From here on, we're no longer using data from the feed. --> + <?php endif; ?> + + </div> + + <div> + <!-- Display how fast the page was rendered. --> + <p class="footnote">Page processed in <?php $mtime = explode(' ', microtime()); echo round($mtime[0] + $mtime[1] - $starttime, 3); ?> seconds.</p> + + <!-- Display the version of SimplePie being loaded. --> + <p class="footnote">Powered by <a href="<?php echo SIMPLEPIE_URL; ?>"><?php echo SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . ', Build ' . SIMPLEPIE_BUILD; ?></a>. Run the <a href="../compatibility_test/sp_compatibility_test.php">SimplePie Compatibility Test</a>. SimplePie is © 2004–<?php echo date('Y'); ?>, Ryan Parman and Geoffrey Sneddon, and licensed under the <a href="http://www.opensource.org/licenses/bsd-license.php">BSD License</a>.</p> + </div> + + </div> + +</div> + +</body> +</html> diff --git a/simplepie/demo/minimalistic.php b/simplepie/demo/minimalistic.php new file mode 100644 index 0000000000..56509c00cb --- /dev/null +++ b/simplepie/demo/minimalistic.php @@ -0,0 +1,137 @@ +<?php + +function microtime_float() +{ + if (version_compare(phpversion(), '5.0.0', '>=')) + { + return microtime(true); + } + else + { + list($usec, $sec) = explode(' ', microtime()); + return ((float) $usec + (float) $sec); + } +} + +$start = microtime_float(); + +include('../simplepie.inc'); + +// Parse it +$feed = new SimplePie(); +if (!empty($_GET['feed'])) +{ + if (get_magic_quotes_gpc()) + { + $_GET['feed'] = stripslashes($_GET['feed']); + } + $feed->set_feed_url($_GET['feed']); + $feed->init(); +} +$feed->handle_content_type(); + +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><?php echo (empty($_GET['feed'])) ? 'SimplePie' : 'SimplePie: ' . $feed->get_title(); ?></title> + +<!-- META HTTP-EQUIV --> +<meta http-equiv="content-type" content="text/html; charset=<?php echo ($feed->get_encoding()) ? $feed->get_encoding() : 'UTF-8'; ?>" /> +<meta http-equiv="imagetoolbar" content="false" /> + +<style type="text/css"> +html, body { + height:100%; + margin:0; + padding:0; +} + +h1 { + background-color:#333; + color:#fff; + font-size:3em; + margin:0; + padding:5px 15px; + text-align:center; +} + +div#footer { + padding:5px 0; +} + +div#footer, +div#footer a { + text-align:center; + font-size:0.7em; +} + +div#footer a { + text-decoration:underline; +} + +code { + background-color:#f3f3ff; + color:#000; +} + +pre { + background-color:#f3f3ff; + color:#000080; + border:1px dotted #000080; + padding:3px 5px; +} + +form { + margin:0; + padding:0; +} + +div.chunk { + border-bottom:1px solid #ccc; +} + +form#sp_form { + text-align:center; + margin:0; + padding:0; +} + +form#sp_form input.text { + width:85%; +} +</style> + +</head> + +<body> + <h1><?php echo (empty($_GET['feed'])) ? 'SimplePie' : 'SimplePie: ' . $feed->get_title(); ?></h1> + + <form action="" method="get" name="sp_form" id="sp_form"> + <p><input type="text" name="feed" value="<?php echo ($feed->subscribe_url()) ? htmlspecialchars($feed->subscribe_url()) : 'http://'; ?>" class="text" id="feed_input" /> <input type="submit" value="Read" class="button" /></p> + </form> + + <div id="sp_results"> + <?php if ($feed->data): ?> + <?php $items = $feed->get_items(); ?> + <p align="center"><span style="background-color:#ffc;">Displaying <?php echo $feed->get_item_quantity(); ?> most recent entries.</span></p> + <?php foreach($items as $item): ?> + <div class="chunk" style="padding:0 5px;"> + <h4><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a> <?php echo $item->get_date('j M Y'); ?></h4> + <?php echo $item->get_content(); ?> + <?php + if ($enclosure = $item->get_enclosure(0)) + echo '<p><a href="' . $enclosure->get_link() . '" class="download"><img src="./for_the_demo/mini_podcast.png" alt="Podcast" title="Download the Podcast" border="0" /></a></p>'; + ?> + </div> + <?php endforeach; ?> + </div> + <?php endif; ?> + </div> + + <div id="footer"> + Powered by <?php echo SIMPLEPIE_LINKBACK; ?>, a product of <a href="http://www.skyzyx.com">Skyzyx Technologies</a>.<br /> + Page created in <?php echo round(microtime_float()-$start, 3); ?> seconds. + </div> +</body> +</html> diff --git a/simplepie/demo/multifeeds.php b/simplepie/demo/multifeeds.php new file mode 100644 index 0000000000..b23d792a2f --- /dev/null +++ b/simplepie/demo/multifeeds.php @@ -0,0 +1,108 @@ +<?php +/******************************************************************** +MULTIFEEDS TEST PAGE + +Nothing too exciting here. Just a sample page that demos integrated +Multifeeds support as well as cached favicons and perhaps a few other +things. + +Lots of this code is commented to help explain some of the new stuff. +Code was tested in PHP 5.2.2, but *should* also work with earlier +versions of PHP, as supported by SimplePie (PHP 4.1). + +********************************************************************/ + +// Include the SimplePie library, and the one that handles internationalized domain names. +require_once('../simplepie.inc'); +require_once('../idn/idna_convert.class.php'); + +// Initialize some feeds for use. +$feed = new SimplePie(); +$feed->set_feed_url(array( + 'http://rss.news.yahoo.com/rss/topstories', + 'http://news.google.com/?output=atom', + 'http://rss.cnn.com/rss/cnn_topstories.rss' +)); + +// When we set these, we need to make sure that the handler_image.php file is also trying to read from the same cache directory that we are. +$feed->set_favicon_handler('./handler_image.php'); +$feed->set_image_handler('./handler_image.php'); + +// Initialize the feed. +$feed->init(); + +// Make sure the page is being served with the UTF-8 headers. +$feed->handle_content_type(); + +// Begin the (X)HTML page. +?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>Multifeeds Test page</title> + <link rel="stylesheet" href="../demo/for_the_demo/simplepie.css" type="text/css" media="screen" title="SimplePie Styles" charset="utf-8" /> + <style type="text/css"> + div#site { + width:600px; + } + span.footnote { + white-space:nowrap; + } + h1 { + line-height:1.4em; + } + h4 { + padding-left:20px; + background-color:transparent; + background-repeat:no-repeat; + background-position:0 1px; + } + .clearBoth { + clear:both; + } + </style> +</head> +<body> +<div id="site"> + + <?php if ($feed->error): ?> + <p><?=$feed->error()?></p> + <?php endif ?> + + <div class="chunk"> + <h1>Quick-n-Dirty Multifeeds Demo</a></h1> + </div> + + <?php + // Let's loop through each item in the feed. + foreach($feed->get_items() as $item): + + // Let's give ourselves a reference to the parent $feed object for this particular item. + $feed = $item->get_feed(); + ?> + + <div class="chunk"> + <h4 style="background-image:url(<?php echo $feed->get_favicon(); ?>);"><a href="<?php echo $item->get_permalink(); ?>"><?php echo html_entity_decode($item->get_title(), ENT_QUOTES, 'UTF-8'); ?></a></h4> + + <!-- get_content() prefers full content over summaries --> + <?php echo $item->get_content(); ?> + + <?php if ($enclosure = $item->get_enclosure()): ?> + <div> + <?php echo $enclosure->native_embed(array( + // New 'mediaplayer' attribute shows off Flash-based MP3 and FLV playback. + 'mediaplayer' => '../demo/for_the_demo/mediaplayer.swf' + )); ?> + </div> + <?php endif; ?> + + <p class="footnote">Source: <a href="<?php echo $feed->get_permalink(); ?>"><?php echo $feed->get_title(); ?></a> | <?php echo $item->get_date('j M Y | g:i a'); ?></p> + </div> + + <?php endforeach ?> + + <p class="footnote">This is a test of the emergency broadcast system. This is only a test… beeeeeeeeeeeeeeeeeeeeeeeeeep!</p> + +</div> +</body> +</html> \ No newline at end of file diff --git a/simplepie/demo/test.php b/simplepie/demo/test.php new file mode 100644 index 0000000000..5b9943abbc --- /dev/null +++ b/simplepie/demo/test.php @@ -0,0 +1,62 @@ +<?php +include_once('../simplepie.inc'); +include_once('../idn/idna_convert.class.php'); + +// Parse it +$feed = new SimplePie(); +if (isset($_GET['feed']) && $_GET['feed'] !== '') +{ + if (get_magic_quotes_gpc()) + { + $_GET['feed'] = stripslashes($_GET['feed']); + } + $feed->set_feed_url($_GET['feed']); + $feed->enable_cache(false); + $starttime = explode(' ', microtime()); + $starttime = $starttime[1] + $starttime[0]; + $feed->init(); + $endtime = explode(' ', microtime()); + $endtime = $endtime[1] + $endtime[0]; + $time = $endtime - $starttime; +} +else +{ + $time = 'null'; +} + +$feed->handle_content_type(); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>SimplePie Test</title> +<pre> +<?php + +// memory_get_peak_usage() only exists on PHP 5.2 and higher if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option) +if (function_exists('memory_get_peak_usage')) +{ + var_dump($time, memory_get_usage(), memory_get_peak_usage()); +} +// memory_get_usage() only exists if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option) +else if (function_exists('memory_get_usage')) +{ + var_dump($time, memory_get_usage()); +} +else +{ + var_dump($time); +} + +// Output buffer +function callable_htmlspecialchars($string) +{ + return htmlspecialchars($string); +} +ob_start('callable_htmlspecialchars'); + +// Output +print_r($feed); +ob_end_flush(); + +?> +</pre> \ No newline at end of file diff --git a/simplepie/idn/LICENCE b/simplepie/idn/LICENCE new file mode 100644 index 0000000000..25a1d22dfe --- /dev/null +++ b/simplepie/idn/LICENCE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/simplepie/idn/ReadMe.txt b/simplepie/idn/ReadMe.txt new file mode 100644 index 0000000000..7ca8c7e6de --- /dev/null +++ b/simplepie/idn/ReadMe.txt @@ -0,0 +1,123 @@ +******************************************************************************* +* * +* IDNA Convert (idna_convert.class.php) * +* * +* http://idnaconv.phlymail.de mailto:phlymail@phlylabs.de * +******************************************************************************* +* (c) 2004-2007 phlyLabs, Berlin * +* This file is encoded in UTF-8 * +******************************************************************************* + +Introduction +------------ + +The class idna_convert allows to convert internationalized domain names +(see RFC 3490, 3491, 3492 and 3454 for detials) as they can be used with various +registries worldwide to be translated between their original (localized) form +and their encoded form as it will be used in the DNS (Domain Name System). + +The class provides two public methods, encode() and decode(), which do exactly +what you would expect them to do. You are allowed to use complete domain names, +simple strings and complete email addresses as well. That means, that you might +use any of the following notations: + +- www.nörgler.com +- xn--nrgler-wxa +- xn--brse-5qa.xn--knrz-1ra.info + +Errors, incorrectly encoded or invalid strings will lead to either a FALSE +response (when in strict mode) or to only partially converted strings. +You can query the occured error by calling the method get_last_error(). + +Unicode strings are expected to be either UTF-8 strings, UCS-4 strings or UCS-4 +arrays. The default format is UTF-8. For setting different encodings, you can +call the method setParams() - please see the inline documentation for details. +ACE strings (the Punycode form) are always 7bit ASCII strings. + +ATTENTION: We no longer supply the PHP5 version of the class. It is not +necessary for achieving a successfull conversion, since the supplied PHP code is +compatible with both PHP4 and PHP5. We expect to see no compatibility issues +with the upcoming PHP6, too. + + +Files +----- + +idna_convert.class.php - The actual class +idna_convert.create.npdata.php - Useful for (re)creating the NPData file +npdata.ser - Serialized data for NamePrep +example.php - An example web page for converting +ReadMe.txt - This file +LICENCE - The LGPL licence file + +The class is contained in idna_convert.class.php. +MAKE SURE to copy the npdata.ser file into the same folder as the class file +itself! + + +Examples +-------- + +1. Say we wish to encode the domain name nörgler.com: + +// Include the class +include_once('idna_convert.class.php'); +// Instantiate it * +$IDN = new idna_convert(); +// The input string, if input is not UTF-8 or UCS-4, it must be converted before +$input = utf8_encode('nörgler.com'); +// Encode it to its punycode presentation +$output = $IDN->encode($input); +// Output, what we got now +echo $output; // This will read: xn--nrgler-wxa.com + + +2. We received an email from a punycoded domain and are willing to learn, how + the domain name reads originally + +// Include the class +include_once('idna_convert.class.php'); +// Instantiate it (depending on the version you are using) with +$IDN = new idna_convert(); +// The input string +$input = 'andre@xn--brse-5qa.xn--knrz-1ra.info'; +// Encode it to its punycode presentation +$output = $IDN->decode($input); +// Output, what we got now, if output should be in a format different to UTF-8 +// or UCS-4, you will have to convert it before outputting it +echo utf8_decode($output); // This will read: andre@börse.knörz.info + + +3. The input is read from a UCS-4 coded file and encoded line by line. By + appending the optional second parameter we tell enode() about the input + format to be used + +// Include the class +include_once('idna_convert.class.php'); +// Instantiate it +$IDN = new dinca_convert(); +// Iterate through the input file line by line +foreach (file('ucs4-domains.txt') as $line) { + echo $IDN->encode(trim($line), 'ucs4_string'); + echo "\n"; +} + + +NPData +------ + +Should you need to recreate the npdata.ser file, which holds all necessary translation +tables in a serialized format, you can run the file idna_convert.create.npdata.php, which +creates the file for you and stores it in the same folder, where it is placed. +Should you need to do changes to the tables you can do so, but beware of the consequences. + + +Contact us +---------- + +In case of errors, bugs, questions, wishes, please don't hesitate to contact us +under the email address above. + +The team of phlyLabs +http://phlylabs.de +mailto:phlymail@phlylabs.de \ No newline at end of file diff --git a/simplepie/idn/idna_convert.class.php b/simplepie/idn/idna_convert.class.php new file mode 100644 index 0000000000..ed2bae26db --- /dev/null +++ b/simplepie/idn/idna_convert.class.php @@ -0,0 +1,969 @@ +<?php +// {{{ license + +/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */ +// +// +----------------------------------------------------------------------+ +// | This library is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU Lesser General Public License as | +// | published by the Free Software Foundation; either version 2.1 of the | +// | License, or (at your option) any later version. | +// | | +// | This library is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | Lesser General Public License for more details. | +// | | +// | You should have received a copy of the GNU Lesser General Public | +// | License along with this library; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 | +// | USA. | +// +----------------------------------------------------------------------+ +// + +// }}} + +/** + * Encode/decode Internationalized Domain Names. + * + * The class allows to convert internationalized domain names + * (see RFC 3490 for details) as they can be used with various registries worldwide + * to be translated between their original (localized) form and their encoded form + * as it will be used in the DNS (Domain Name System). + * + * The class provides two public methods, encode() and decode(), which do exactly + * what you would expect them to do. You are allowed to use complete domain names, + * simple strings and complete email addresses as well. That means, that you might + * use any of the following notations: + * + * - www.nörgler.com + * - xn--nrgler-wxa + * - xn--brse-5qa.xn--knrz-1ra.info + * + * Unicode input might be given as either UTF-8 string, UCS-4 string or UCS-4 + * array. Unicode output is available in the same formats. + * You can select your preferred format via {@link set_paramter()}. + * + * ACE input and output is always expected to be ASCII. + * + * @author Matthias Sommerfeld <mso@phlylabs.de> + * @copyright 2004-2007 phlyLabs Berlin, http://phlylabs.de + * @version 0.5.1 + * + */ +class idna_convert +{ + /** + * Holds all relevant mapping tables, loaded from a seperate file on construct + * See RFC3454 for details + * + * @var array + * @access private + */ + var $NP = array(); + + // Internal settings, do not mess with them + var $_punycode_prefix = 'xn--'; + var $_invalid_ucs = 0x80000000; + var $_max_ucs = 0x10FFFF; + var $_base = 36; + var $_tmin = 1; + var $_tmax = 26; + var $_skew = 38; + var $_damp = 700; + var $_initial_bias = 72; + var $_initial_n = 0x80; + var $_sbase = 0xAC00; + var $_lbase = 0x1100; + var $_vbase = 0x1161; + var $_tbase = 0x11A7; + var $_lcount = 19; + var $_vcount = 21; + var $_tcount = 28; + var $_ncount = 588; // _vcount * _tcount + var $_scount = 11172; // _lcount * _tcount * _vcount + var $_error = false; + + // See {@link set_paramter()} for details of how to change the following + // settings from within your script / application + var $_api_encoding = 'utf8'; // Default input charset is UTF-8 + var $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden + var $_strict_mode = false; // Behave strict or not + + // The constructor + function idna_convert($options = false) + { + $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount; + if (function_exists('file_get_contents')) { + $this->NP = unserialize(file_get_contents(dirname(__FILE__).'/npdata.ser')); + } else { + $this->NP = unserialize(join('', file(dirname(__FILE__).'/npdata.ser'))); + } + // If parameters are given, pass these to the respective method + if (is_array($options)) { + return $this->set_parameter($options); + } + return true; + } + + /** + * Sets a new option value. Available options and values: + * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8, + * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8] + * [overlong - Unicode does not allow unnecessarily long encodings of chars, + * to allow this, set this parameter to true, else to false; + * default is false.] + * [strict - true: strict mode, good for registration purposes - Causes errors + * on failures; false: loose mode, ideal for "wildlife" applications + * by silently ignoring errors and returning the original input instead + * + * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs) + * @param string Value to use (if parameter 1 is a string) + * @return boolean true on success, false otherwise + * @access public + */ + function set_parameter($option, $value = false) + { + if (!is_array($option)) { + $option = array($option => $value); + } + foreach ($option as $k => $v) { + switch ($k) { + case 'encoding': + switch ($v) { + case 'utf8': + case 'ucs4_string': + case 'ucs4_array': + $this->_api_encoding = $v; + break; + default: + $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); + return false; + } + break; + case 'overlong': + $this->_allow_overlong = ($v) ? true : false; + break; + case 'strict': + $this->_strict_mode = ($v) ? true : false; + break; + default: + $this->_error('Set Parameter: Unknown option '.$k); + return false; + } + } + return true; + } + + /** + * Decode a given ACE domain name + * @param string Domain name (ACE string) + * [@param string Desired output encoding, see {@link set_parameter}] + * @return string Decoded Domain name (UTF-8 or UCS-4) + * @access public + */ + function decode($input, $one_time_encoding = false) + { + // Optionally set + if ($one_time_encoding) { + switch ($one_time_encoding) { + case 'utf8': + case 'ucs4_string': + case 'ucs4_array': + break; + default: + $this->_error('Unknown encoding '.$one_time_encoding); + return false; + } + } + // Make sure to drop any newline characters around + $input = trim($input); + + // Negotiate input and try to determine, whether it is a plain string, + // an email address or something like a complete URL + if (strpos($input, '@')) { // Maybe it is an email address + // No no in strict mode + if ($this->_strict_mode) { + $this->_error('Only simple domain name parts can be handled in strict mode'); + return false; + } + list ($email_pref, $input) = explode('@', $input, 2); + $arr = explode('.', $input); + foreach ($arr as $k => $v) { + if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) { + $conv = $this->_decode($v); + if ($conv) $arr[$k] = $conv; + } + } + $input = join('.', $arr); + $arr = explode('.', $email_pref); + foreach ($arr as $k => $v) { + if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) { + $conv = $this->_decode($v); + if ($conv) $arr[$k] = $conv; + } + } + $email_pref = join('.', $arr); + $return = $email_pref . '@' . $input; + } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters) + // No no in strict mode + if ($this->_strict_mode) { + $this->_error('Only simple domain name parts can be handled in strict mode'); + return false; + } + $parsed = parse_url($input); + if (isset($parsed['host'])) { + $arr = explode('.', $parsed['host']); + foreach ($arr as $k => $v) { + $conv = $this->_decode($v); + if ($conv) $arr[$k] = $conv; + } + $parsed['host'] = join('.', $arr); + $return = + (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')) + .(empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@') + .$parsed['host'] + .(empty($parsed['port']) ? '' : ':'.$parsed['port']) + .(empty($parsed['path']) ? '' : $parsed['path']) + .(empty($parsed['query']) ? '' : '?'.$parsed['query']) + .(empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']); + } else { // parse_url seems to have failed, try without it + $arr = explode('.', $input); + foreach ($arr as $k => $v) { + $conv = $this->_decode($v); + $arr[$k] = ($conv) ? $conv : $v; + } + $return = join('.', $arr); + } + } else { // Otherwise we consider it being a pure domain name string + $return = $this->_decode($input); + if (!$return) $return = $input; + } + // The output is UTF-8 by default, other output formats need conversion here + // If one time encoding is given, use this, else the objects property + switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) { + case 'utf8': + return $return; + break; + case 'ucs4_string': + return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); + break; + case 'ucs4_array': + return $this->_utf8_to_ucs4($return); + break; + default: + $this->_error('Unsupported output format'); + return false; + } + } + + /** + * Encode a given UTF-8 domain name + * @param string Domain name (UTF-8 or UCS-4) + * [@param string Desired input encoding, see {@link set_parameter}] + * @return string Encoded Domain name (ACE string) + * @access public + */ + function encode($decoded, $one_time_encoding = false) + { + // Forcing conversion of input to UCS4 array + // If one time encoding is given, use this, else the objects property + switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) { + case 'utf8': + $decoded = $this->_utf8_to_ucs4($decoded); + break; + case 'ucs4_string': + $decoded = $this->_ucs4_string_to_ucs4($decoded); + case 'ucs4_array': + break; + default: + $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding)); + return false; + } + + // No input, no output, what else did you expect? + if (empty($decoded)) return ''; + + // Anchors for iteration + $last_begin = 0; + // Output string + $output = ''; + foreach ($decoded as $k => $v) { + // Make sure to use just the plain dot + switch($v) { + case 0x3002: + case 0xFF0E: + case 0xFF61: + $decoded[$k] = 0x2E; + // Right, no break here, the above are converted to dots anyway + // Stumbling across an anchoring character + case 0x2E: + case 0x2F: + case 0x3A: + case 0x3F: + case 0x40: + // Neither email addresses nor URLs allowed in strict mode + if ($this->_strict_mode) { + $this->_error('Neither email addresses nor URLs are allowed in strict mode.'); + return false; + } else { + // Skip first char + if ($k) { + $encoded = ''; + $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin))); + if ($encoded) { + $output .= $encoded; + } else { + $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin))); + } + $output .= chr($decoded[$k]); + } + $last_begin = $k + 1; + } + } + } + // Catch the rest of the string + if ($last_begin) { + $inp_len = sizeof($decoded); + $encoded = ''; + $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len)-$last_begin))); + if ($encoded) { + $output .= $encoded; + } else { + $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len)-$last_begin))); + } + return $output; + } else { + if ($output = $this->_encode($decoded)) { + return $output; + } else { + return $this->_ucs4_to_utf8($decoded); + } + } + } + + /** + * Use this method to get the last error ocurred + * @param void + * @return string The last error, that occured + * @access public + */ + function get_last_error() + { + return $this->_error; + } + + /** + * The actual decoding algorithm + * @access private + */ + function _decode($encoded) + { + // We do need to find the Punycode prefix + if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) { + $this->_error('This is not a punycode string'); + return false; + } + $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded); + // If nothing left after removing the prefix, it is hopeless + if (!$encode_test) { + $this->_error('The given encoded string was empty'); + return false; + } + // Find last occurence of the delimiter + $delim_pos = strrpos($encoded, '-'); + if ($delim_pos > strlen($this->_punycode_prefix)) { + for ($k = strlen($this->_punycode_prefix); $k < $delim_pos; ++$k) { + $decoded[] = ord($encoded{$k}); + } + } else { + $decoded = array(); + } + $deco_len = count($decoded); + $enco_len = strlen($encoded); + + // Wandering through the strings; init + $is_first = true; + $bias = $this->_initial_bias; + $idx = 0; + $char = $this->_initial_n; + + for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) { + for ($old_idx = $idx, $w = 1, $k = $this->_base; 1 ; $k += $this->_base) { + $digit = $this->_decode_digit($encoded{$enco_idx++}); + $idx += $digit * $w; + $t = ($k <= $bias) ? $this->_tmin : + (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias)); + if ($digit < $t) break; + $w = (int) ($w * ($this->_base - $t)); + } + $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first); + $is_first = false; + $char += (int) ($idx / ($deco_len + 1)); + $idx %= ($deco_len + 1); + if ($deco_len > 0) { + // Make room for the decoded char + for ($i = $deco_len; $i > $idx; $i--) { + $decoded[$i] = $decoded[($i - 1)]; + } + } + $decoded[$idx++] = $char; + } + return $this->_ucs4_to_utf8($decoded); + } + + /** + * The actual encoding algorithm + * @access private + */ + function _encode($decoded) + { + // We cannot encode a domain name containing the Punycode prefix + $extract = strlen($this->_punycode_prefix); + $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix); + $check_deco = array_slice($decoded, 0, $extract); + + if ($check_pref == $check_deco) { + $this->_error('This is already a punycode string'); + return false; + } + // We will not try to encode strings consisting of basic code points only + $encodable = false; + foreach ($decoded as $k => $v) { + if ($v > 0x7a) { + $encodable = true; + break; + } + } + if (!$encodable) { + $this->_error('The given string does not contain encodable chars'); + return false; + } + + // Do NAMEPREP + $decoded = $this->_nameprep($decoded); + if (!$decoded || !is_array($decoded)) return false; // NAMEPREP failed + + $deco_len = count($decoded); + if (!$deco_len) return false; // Empty array + + $codecount = 0; // How many chars have been consumed + + $encoded = ''; + // Copy all basic code points to output + for ($i = 0; $i < $deco_len; ++$i) { + $test = $decoded[$i]; + // Will match [-0-9a-zA-Z] + if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) + || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) { + $encoded .= chr($decoded[$i]); + $codecount++; + } + } + if ($codecount == $deco_len) return $encoded; // All codepoints were basic ones + + // Start with the prefix; copy it to output + $encoded = $this->_punycode_prefix.$encoded; + + // If we have basic code points in output, add an hyphen to the end + if ($codecount) $encoded .= '-'; + + // Now find and encode all non-basic code points + $is_first = true; + $cur_code = $this->_initial_n; + $bias = $this->_initial_bias; + $delta = 0; + while ($codecount < $deco_len) { + // Find the smallest code point >= the current code point and + // remember the last ouccrence of it in the input + for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) { + if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) { + $next_code = $decoded[$i]; + } + } + + $delta += ($next_code - $cur_code) * ($codecount + 1); + $cur_code = $next_code; + + // Scan input again and encode all characters whose code point is $cur_code + for ($i = 0; $i < $deco_len; $i++) { + if ($decoded[$i] < $cur_code) { + $delta++; + } elseif ($decoded[$i] == $cur_code) { + for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) { + $t = ($k <= $bias) ? $this->_tmin : + (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias); + if ($q < $t) break; + $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval() + $q = (int) (($q - $t) / ($this->_base - $t)); + } + $encoded .= $this->_encode_digit($q); + $bias = $this->_adapt($delta, $codecount+1, $is_first); + $codecount++; + $delta = 0; + $is_first = false; + } + } + $delta++; + $cur_code++; + } + return $encoded; + } + + /** + * Adapt the bias according to the current code point and position + * @access private + */ + function _adapt($delta, $npoints, $is_first) + { + $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2)); + $delta += intval($delta / $npoints); + for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) { + $delta = intval($delta / ($this->_base - $this->_tmin)); + } + return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew)); + } + + /** + * Encoding a certain digit + * @access private + */ + function _encode_digit($d) + { + return chr($d + 22 + 75 * ($d < 26)); + } + + /** + * Decode a certain digit + * @access private + */ + function _decode_digit($cp) + { + $cp = ord($cp); + return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base)); + } + + /** + * Internal error handling method + * @access private + */ + function _error($error = '') + { + $this->_error = $error; + } + + /** + * Do Nameprep according to RFC3491 and RFC3454 + * @param array Unicode Characters + * @return string Unicode Characters, Nameprep'd + * @access private + */ + function _nameprep($input) + { + $output = array(); + $error = false; + // + // Mapping + // Walking through the input array, performing the required steps on each of + // the input chars and putting the result into the output array + // While mapping required chars we apply the cannonical ordering + foreach ($input as $v) { + // Map to nothing == skip that code point + if (in_array($v, $this->NP['map_nothing'])) continue; + + // Try to find prohibited input + if (in_array($v, $this->NP['prohibit']) || in_array($v, $this->NP['general_prohibited'])) { + $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v)); + return false; + } + foreach ($this->NP['prohibit_ranges'] as $range) { + if ($range[0] <= $v && $v <= $range[1]) { + $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v)); + return false; + } + } + // + // Hangul syllable decomposition + if (0xAC00 <= $v && $v <= 0xD7AF) { + foreach ($this->_hangul_decompose($v) as $out) { + $output[] = (int) $out; + } + // There's a decomposition mapping for that code point + } elseif (isset($this->NP['replacemaps'][$v])) { + foreach ($this->_apply_cannonical_ordering($this->NP['replacemaps'][$v]) as $out) { + $output[] = (int) $out; + } + } else { + $output[] = (int) $v; + } + } + // Before applying any Combining, try to rearrange any Hangul syllables + $output = $this->_hangul_compose($output); + // + // Combine code points + // + $last_class = 0; + $last_starter = 0; + $out_len = count($output); + for ($i = 0; $i < $out_len; ++$i) { + $class = $this->_get_combining_class($output[$i]); + if ((!$last_class || $last_class > $class) && $class) { + // Try to match + $seq_len = $i - $last_starter; + $out = $this->_combine(array_slice($output, $last_starter, $seq_len)); + // On match: Replace the last starter with the composed character and remove + // the now redundant non-starter(s) + if ($out) { + $output[$last_starter] = $out; + if (count($out) != $seq_len) { + for ($j = $i+1; $j < $out_len; ++$j) { + $output[$j-1] = $output[$j]; + } + unset($output[$out_len]); + } + // Rewind the for loop by one, since there can be more possible compositions + $i--; + $out_len--; + $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i-1]); + continue; + } + } + // The current class is 0 + if (!$class) $last_starter = $i; + $last_class = $class; + } + return $output; + } + + /** + * Decomposes a Hangul syllable + * (see http://www.unicode.org/unicode/reports/tr15/#Hangul + * @param integer 32bit UCS4 code point + * @return array Either Hangul Syllable decomposed or original 32bit value as one value array + * @access private + */ + function _hangul_decompose($char) + { + $sindex = (int) $char - $this->_sbase; + if ($sindex < 0 || $sindex >= $this->_scount) { + return array($char); + } + $result = array(); + $result[] = (int) $this->_lbase + $sindex / $this->_ncount; + $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount; + $T = intval($this->_tbase + $sindex % $this->_tcount); + if ($T != $this->_tbase) $result[] = $T; + return $result; + } + /** + * Ccomposes a Hangul syllable + * (see http://www.unicode.org/unicode/reports/tr15/#Hangul + * @param array Decomposed UCS4 sequence + * @return array UCS4 sequence with syllables composed + * @access private + */ + function _hangul_compose($input) + { + $inp_len = count($input); + if (!$inp_len) return array(); + $result = array(); + $last = (int) $input[0]; + $result[] = $last; // copy first char from input to output + + for ($i = 1; $i < $inp_len; ++$i) { + $char = (int) $input[$i]; + $sindex = $last - $this->_sbase; + $lindex = $last - $this->_lbase; + $vindex = $char - $this->_vbase; + $tindex = $char - $this->_tbase; + // Find out, whether two current characters are LV and T + if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) + && 0 <= $tindex && $tindex <= $this->_tcount) { + // create syllable of form LVT + $last += $tindex; + $result[(count($result) - 1)] = $last; // reset last + continue; // discard char + } + // Find out, whether two current characters form L and V + if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) { + // create syllable of form LV + $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount; + $result[(count($result) - 1)] = $last; // reset last + continue; // discard char + } + // if neither case was true, just add the character + $last = $char; + $result[] = $char; + } + return $result; + } + + /** + * Returns the combining class of a certain wide char + * @param integer Wide char to check (32bit integer) + * @return integer Combining class if found, else 0 + * @access private + */ + function _get_combining_class($char) + { + return isset($this->NP['norm_combcls'][$char]) ? $this->NP['norm_combcls'][$char] : 0; + } + + /** + * Apllies the cannonical ordering of a decomposed UCS4 sequence + * @param array Decomposed UCS4 sequence + * @return array Ordered USC4 sequence + * @access private + */ + function _apply_cannonical_ordering($input) + { + $swap = true; + $size = count($input); + while ($swap) { + $swap = false; + $last = $this->_get_combining_class(intval($input[0])); + for ($i = 0; $i < $size-1; ++$i) { + $next = $this->_get_combining_class(intval($input[$i+1])); + if ($next != 0 && $last > $next) { + // Move item leftward until it fits + for ($j = $i + 1; $j > 0; --$j) { + if ($this->_get_combining_class(intval($input[$j-1])) <= $next) break; + $t = intval($input[$j]); + $input[$j] = intval($input[$j-1]); + $input[$j-1] = $t; + $swap = true; + } + // Reentering the loop looking at the old character again + $next = $last; + } + $last = $next; + } + } + return $input; + } + + /** + * Do composition of a sequence of starter and non-starter + * @param array UCS4 Decomposed sequence + * @return array Ordered USC4 sequence + * @access private + */ + function _combine($input) + { + $inp_len = count($input); + foreach ($this->NP['replacemaps'] as $np_src => $np_target) { + if ($np_target[0] != $input[0]) continue; + if (count($np_target) != $inp_len) continue; + $hit = false; + foreach ($input as $k2 => $v2) { + if ($v2 == $np_target[$k2]) { + $hit = true; + } else { + $hit = false; + break; + } + } + if ($hit) return $np_src; + } + return false; + } + + /** + * This converts an UTF-8 encoded string to its UCS-4 representation + * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing + * each of the "chars". This is due to PHP not being able to handle strings with + * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too. + * The following UTF-8 encodings are supported: + * bytes bits representation + * 1 7 0xxxxxxx + * 2 11 110xxxxx 10xxxxxx + * 3 16 1110xxxx 10xxxxxx 10xxxxxx + * 4 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + * 5 26 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + * 6 31 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + * Each x represents a bit that can be used to store character data. + * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000 + * @access private + */ + function _utf8_to_ucs4($input) + { + $output = array(); + $out_len = 0; + $inp_len = strlen($input); + $mode = 'next'; + $test = 'none'; + for ($k = 0; $k < $inp_len; ++$k) { + $v = ord($input{$k}); // Extract byte from input string + + if ($v < 128) { // We found an ASCII char - put into stirng as is + $output[$out_len] = $v; + ++$out_len; + if ('add' == $mode) { + $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k); + return false; + } + continue; + } + if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char + $start_byte = $v; + $mode = 'add'; + $test = 'range'; + if ($v >> 5 == 6) { // &110xxxxx 10xxxxx + $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left + $v = ($v - 192) << 6; + } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx + $next_byte = 1; + $v = ($v - 224) << 12; + } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + $next_byte = 2; + $v = ($v - 240) << 18; + } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + $next_byte = 3; + $v = ($v - 248) << 24; + } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + $next_byte = 4; + $v = ($v - 252) << 30; + } else { + $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k); + return false; + } + if ('add' == $mode) { + $output[$out_len] = (int) $v; + ++$out_len; + continue; + } + } + if ('add' == $mode) { + if (!$this->_allow_overlong && $test == 'range') { + $test = 'none'; + if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) { + $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k); + return false; + } + } + if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx + $v = ($v - 128) << ($next_byte * 6); + $output[($out_len - 1)] += $v; + --$next_byte; + } else { + $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k); + return false; + } + if ($next_byte < 0) { + $mode = 'next'; + } + } + } // for + return $output; + } + + /** + * Convert UCS-4 string into UTF-8 string + * See _utf8_to_ucs4() for details + * @access private + */ + function _ucs4_to_utf8($input) + { + $output = ''; + $k = 0; + foreach ($input as $v) { + ++$k; + // $v = ord($v); + if ($v < 128) { // 7bit are transferred literally + $output .= chr($v); + } elseif ($v < (1 << 11)) { // 2 bytes + $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63)); + } elseif ($v < (1 << 16)) { // 3 bytes + $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); + } elseif ($v < (1 << 21)) { // 4 bytes + $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) + . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); + } elseif ($v < (1 << 26)) { // 5 bytes + $output .= chr(248 + ($v >> 24)) . chr(128 + (($v >> 18) & 63)) + . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) + . chr(128 + ($v & 63)); + } elseif ($v < (1 << 31)) { // 6 bytes + $output .= chr(252 + ($v >> 30)) . chr(128 + (($v >> 24) & 63)) + . chr(128 + (($v >> 18) & 63)) . chr(128 + (($v >> 12) & 63)) + . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); + } else { + $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k); + return false; + } + } + return $output; + } + + /** + * Convert UCS-4 array into UCS-4 string + * + * @access private + */ + function _ucs4_to_ucs4_string($input) + { + $output = ''; + // Take array values and split output to 4 bytes per value + // The bit mask is 255, which reads &11111111 + foreach ($input as $v) { + $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255); + } + return $output; + } + + /** + * Convert UCS-4 strin into UCS-4 garray + * + * @access private + */ + function _ucs4_string_to_ucs4($input) + { + $output = array(); + $inp_len = strlen($input); + // Input length must be dividable by 4 + if ($inp_len % 4) { + $this->_error('Input UCS4 string is broken'); + return false; + } + // Empty input - return empty output + if (!$inp_len) return $output; + for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) { + // Increment output position every 4 input bytes + if (!($i % 4)) { + $out_len++; + $output[$out_len] = 0; + } + $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) ); + } + return $output; + } +} + +/** +* Adapter class for aligning the API of idna_convert with that of Net_IDNA +* @author Matthias Sommerfeld <mso@phlylabs.de> +*/ +class Net_IDNA_php4 extends idna_convert +{ + /** + * Sets a new option value. Available options and values: + * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8, + * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8] + * [overlong - Unicode does not allow unnecessarily long encodings of chars, + * to allow this, set this parameter to true, else to false; + * default is false.] + * [strict - true: strict mode, good for registration purposes - Causes errors + * on failures; false: loose mode, ideal for "wildlife" applications + * by silently ignoring errors and returning the original input instead + * + * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs) + * @param string Value to use (if parameter 1 is a string) + * @return boolean true on success, false otherwise + * @access public + */ + function setParams($option, $param = false) + { + return $this->IC->set_parameters($option, $param); + } +} + +?> \ No newline at end of file diff --git a/simplepie/idn/npdata.ser b/simplepie/idn/npdata.ser new file mode 100644 index 0000000000..d7ce6d03f2 --- /dev/null +++ b/simplepie/idn/npdata.ser @@ -0,0 +1 @@ +a:6:{s:11:"map_nothing";a:27:{i:0;i:173;i:1;i:847;i:2;i:6150;i:3;i:6155;i:4;i:6156;i:5;i:6157;i:6;i:8203;i:7;i:8204;i:8;i:8205;i:9;i:8288;i:10;i:65024;i:11;i:65025;i:12;i:65026;i:13;i:65027;i:14;i:65028;i:15;i:65029;i:16;i:65030;i:17;i:65031;i:18;i:65032;i:19;i:65033;i:20;i:65034;i:21;i:65035;i:22;i:65036;i:23;i:65037;i:24;i:65038;i:25;i:65039;i:26;i:65279;}s:18:"general_prohibited";a:64:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;i:10;i:11;i:11;i:12;i:12;i:13;i:13;i:14;i:14;i:15;i:15;i:16;i:16;i:17;i:17;i:18;i:18;i:19;i:19;i:20;i:20;i:21;i:21;i:22;i:22;i:23;i:23;i:24;i:24;i:25;i:25;i:26;i:26;i:27;i:27;i:28;i:28;i:29;i:29;i:30;i:30;i:31;i:31;i:32;i:32;i:33;i:33;i:34;i:34;i:35;i:35;i:36;i:36;i:37;i:37;i:38;i:38;i:39;i:39;i:40;i:40;i:41;i:41;i:42;i:42;i:43;i:43;i:44;i:44;i:45;i:47;i:46;i:59;i:47;i:60;i:48;i:61;i:49;i:62;i:50;i:63;i:51;i:64;i:52;i:91;i:53;i:92;i:54;i:93;i:55;i:94;i:56;i:95;i:57;i:96;i:58;i:123;i:59;i:124;i:60;i:125;i:61;i:126;i:62;i:127;i:63;i:12290;}s:8:"prohibit";a:84:{i:0;i:160;i:1;i:5760;i:2;i:8192;i:3;i:8193;i:4;i:8194;i:5;i:8195;i:6;i:8196;i:7;i:8197;i:8;i:8198;i:9;i:8199;i:10;i:8200;i:11;i:8201;i:12;i:8202;i:13;i:8203;i:14;i:8239;i:15;i:8287;i:16;i:12288;i:17;i:1757;i:18;i:1807;i:19;i:6158;i:20;i:8204;i:21;i:8205;i:22;i:8232;i:23;i:8233;i:24;i:65279;i:25;i:65529;i:26;i:65530;i:27;i:65531;i:28;i:65532;i:29;i:65534;i:30;i:65535;i:31;i:131070;i:32;i:131071;i:33;i:196606;i:34;i:196607;i:35;i:262142;i:36;i:262143;i:37;i:327678;i:38;i:327679;i:39;i:393214;i:40;i:393215;i:41;i:458750;i:42;i:458751;i:43;i:524286;i:44;i:524287;i:45;i:589822;i:46;i:589823;i:47;i:655358;i:48;i:655359;i:49;i:720894;i:50;i:720895;i:51;i:786430;i:52;i:786431;i:53;i:851966;i:54;i:851967;i:55;i:917502;i:56;i:917503;i:57;i:983038;i:58;i:983039;i:59;i:1048574;i:60;i:1048575;i:61;i:1114110;i:62;i:1114111;i:63;i:65529;i:64;i:65530;i:65;i:65531;i:66;i:65532;i:67;i:65533;i:68;i:832;i:69;i:833;i:70;i:8206;i:71;i:8207;i:72;i:8234;i:73;i:8235;i:74;i:8236;i:75;i:8237;i:76;i:8238;i:77;i:8298;i:78;i:8299;i:79;i:8300;i:80;i:8301;i:81;i:8302;i:82;i:8303;i:83;i:917505;}s:15:"prohibit_ranges";a:10:{i:0;a:2:{i:0;i:128;i:1;i:159;}i:1;a:2:{i:0;i:8288;i:1;i:8303;}i:2;a:2:{i:0;i:119155;i:1;i:119162;}i:3;a:2:{i:0;i:57344;i:1;i:63743;}i:4;a:2:{i:0;i:983040;i:1;i:1048573;}i:5;a:2:{i:0;i:1048576;i:1;i:1114109;}i:6;a:2:{i:0;i:64976;i:1;i:65007;}i:7;a:2:{i:0;i:55296;i:1;i:57343;}i:8;a:2:{i:0;i:12272;i:1;i:12283;}i:9;a:2:{i:0;i:917536;i:1;i:917631;}}s:11:"replacemaps";a:1401:{i:65;a:1:{i:0;i:97;}i:66;a:1:{i:0;i:98;}i:67;a:1:{i:0;i:99;}i:68;a:1:{i:0;i:100;}i:69;a:1:{i:0;i:101;}i:70;a:1:{i:0;i:102;}i:71;a:1:{i:0;i:103;}i:72;a:1:{i:0;i:104;}i:73;a:1:{i:0;i:105;}i:74;a:1:{i:0;i:106;}i:75;a:1:{i:0;i:107;}i:76;a:1:{i:0;i:108;}i:77;a:1:{i:0;i:109;}i:78;a:1:{i:0;i:110;}i:79;a:1:{i:0;i:111;}i:80;a:1:{i:0;i:112;}i:81;a:1:{i:0;i:113;}i:82;a:1:{i:0;i:114;}i:83;a:1:{i:0;i:115;}i:84;a:1:{i:0;i:116;}i:85;a:1:{i:0;i:117;}i:86;a:1:{i:0;i:118;}i:87;a:1:{i:0;i:119;}i:88;a:1:{i:0;i:120;}i:89;a:1:{i:0;i:121;}i:90;a:1:{i:0;i:122;}i:181;a:1:{i:0;i:956;}i:192;a:1:{i:0;i:224;}i:193;a:1:{i:0;i:225;}i:194;a:1:{i:0;i:226;}i:195;a:1:{i:0;i:227;}i:196;a:1:{i:0;i:228;}i:197;a:1:{i:0;i:229;}i:198;a:1:{i:0;i:230;}i:199;a:1:{i:0;i:231;}i:200;a:1:{i:0;i:232;}i:201;a:1:{i:0;i:233;}i:202;a:1:{i:0;i:234;}i:203;a:1:{i:0;i:235;}i:204;a:1:{i:0;i:236;}i:205;a:1:{i:0;i:237;}i:206;a:1:{i:0;i:238;}i:207;a:1:{i:0;i:239;}i:208;a:1:{i:0;i:240;}i:209;a:1:{i:0;i:241;}i:210;a:1:{i:0;i:242;}i:211;a:1:{i:0;i:243;}i:212;a:1:{i:0;i:244;}i:213;a:1:{i:0;i:245;}i:214;a:1:{i:0;i:246;}i:216;a:1:{i:0;i:248;}i:217;a:1:{i:0;i:249;}i:218;a:1:{i:0;i:250;}i:219;a:1:{i:0;i:251;}i:220;a:1:{i:0;i:252;}i:221;a:1:{i:0;i:253;}i:222;a:1:{i:0;i:254;}i:223;a:2:{i:0;i:115;i:1;i:115;}i:256;a:1:{i:0;i:257;}i:258;a:1:{i:0;i:259;}i:260;a:1:{i:0;i:261;}i:262;a:1:{i:0;i:263;}i:264;a:1:{i:0;i:265;}i:266;a:1:{i:0;i:267;}i:268;a:1:{i:0;i:269;}i:270;a:1:{i:0;i:271;}i:272;a:1:{i:0;i:273;}i:274;a:1:{i:0;i:275;}i:276;a:1:{i:0;i:277;}i:278;a:1:{i:0;i:279;}i:280;a:1:{i:0;i:281;}i:282;a:1:{i:0;i:283;}i:284;a:1:{i:0;i:285;}i:286;a:1:{i:0;i:287;}i:288;a:1:{i:0;i:289;}i:290;a:1:{i:0;i:291;}i:292;a:1:{i:0;i:293;}i:294;a:1:{i:0;i:295;}i:296;a:1:{i:0;i:297;}i:298;a:1:{i:0;i:299;}i:300;a:1:{i:0;i:301;}i:302;a:1:{i:0;i:303;}i:304;a:2:{i:0;i:105;i:1;i:775;}i:306;a:1:{i:0;i:307;}i:308;a:1:{i:0;i:309;}i:310;a:1:{i:0;i:311;}i:313;a:1:{i:0;i:314;}i:315;a:1:{i:0;i:316;}i:317;a:1:{i:0;i:318;}i:319;a:1:{i:0;i:320;}i:321;a:1:{i:0;i:322;}i:323;a:1:{i:0;i:324;}i:325;a:1:{i:0;i:326;}i:327;a:1:{i:0;i:328;}i:329;a:2:{i:0;i:700;i:1;i:110;}i:330;a:1:{i:0;i:331;}i:332;a:1:{i:0;i:333;}i:334;a:1:{i:0;i:335;}i:336;a:1:{i:0;i:337;}i:338;a:1:{i:0;i:339;}i:340;a:1:{i:0;i:341;}i:342;a:1:{i:0;i:343;}i:344;a:1:{i:0;i:345;}i:346;a:1:{i:0;i:347;}i:348;a:1:{i:0;i:349;}i:350;a:1:{i:0;i:351;}i:352;a:1:{i:0;i:353;}i:354;a:1:{i:0;i:355;}i:356;a:1:{i:0;i:357;}i:358;a:1:{i:0;i:359;}i:360;a:1:{i:0;i:361;}i:362;a:1:{i:0;i:363;}i:364;a:1:{i:0;i:365;}i:366;a:1:{i:0;i:367;}i:368;a:1:{i:0;i:369;}i:370;a:1:{i:0;i:371;}i:372;a:1:{i:0;i:373;}i:374;a:1:{i:0;i:375;}i:376;a:1:{i:0;i:255;}i:377;a:1:{i:0;i:378;}i:379;a:1:{i:0;i:380;}i:381;a:1:{i:0;i:382;}i:383;a:1:{i:0;i:115;}i:385;a:1:{i:0;i:595;}i:386;a:1:{i:0;i:387;}i:388;a:1:{i:0;i:389;}i:390;a:1:{i:0;i:596;}i:391;a:1:{i:0;i:392;}i:393;a:1:{i:0;i:598;}i:394;a:1:{i:0;i:599;}i:395;a:1:{i:0;i:396;}i:398;a:1:{i:0;i:477;}i:399;a:1:{i:0;i:601;}i:400;a:1:{i:0;i:603;}i:401;a:1:{i:0;i:402;}i:403;a:1:{i:0;i:608;}i:404;a:1:{i:0;i:611;}i:406;a:1:{i:0;i:617;}i:407;a:1:{i:0;i:616;}i:408;a:1:{i:0;i:409;}i:412;a:1:{i:0;i:623;}i:413;a:1:{i:0;i:626;}i:415;a:1:{i:0;i:629;}i:416;a:1:{i:0;i:417;}i:418;a:1:{i:0;i:419;}i:420;a:1:{i:0;i:421;}i:422;a:1:{i:0;i:640;}i:423;a:1:{i:0;i:424;}i:425;a:1:{i:0;i:643;}i:428;a:1:{i:0;i:429;}i:430;a:1:{i:0;i:648;}i:431;a:1:{i:0;i:432;}i:433;a:1:{i:0;i:650;}i:434;a:1:{i:0;i:651;}i:435;a:1:{i:0;i:436;}i:437;a:1:{i:0;i:438;}i:439;a:1:{i:0;i:658;}i:440;a:1:{i:0;i:441;}i:444;a:1:{i:0;i:445;}i:452;a:1:{i:0;i:454;}i:453;a:1:{i:0;i:454;}i:455;a:1:{i:0;i:457;}i:456;a:1:{i:0;i:457;}i:458;a:1:{i:0;i:460;}i:459;a:1:{i:0;i:460;}i:461;a:1:{i:0;i:462;}i:463;a:1:{i:0;i:464;}i:465;a:1:{i:0;i:466;}i:467;a:1:{i:0;i:468;}i:469;a:1:{i:0;i:470;}i:471;a:1:{i:0;i:472;}i:473;a:1:{i:0;i:474;}i:475;a:1:{i:0;i:476;}i:478;a:1:{i:0;i:479;}i:480;a:1:{i:0;i:481;}i:482;a:1:{i:0;i:483;}i:484;a:1:{i:0;i:485;}i:486;a:1:{i:0;i:487;}i:488;a:1:{i:0;i:489;}i:490;a:1:{i:0;i:491;}i:492;a:1:{i:0;i:493;}i:494;a:1:{i:0;i:495;}i:496;a:2:{i:0;i:106;i:1;i:780;}i:497;a:1:{i:0;i:499;}i:498;a:1:{i:0;i:499;}i:500;a:1:{i:0;i:501;}i:502;a:1:{i:0;i:405;}i:503;a:1:{i:0;i:447;}i:504;a:1:{i:0;i:505;}i:506;a:1:{i:0;i:507;}i:508;a:1:{i:0;i:509;}i:510;a:1:{i:0;i:511;}i:512;a:1:{i:0;i:513;}i:514;a:1:{i:0;i:515;}i:516;a:1:{i:0;i:517;}i:518;a:1:{i:0;i:519;}i:520;a:1:{i:0;i:521;}i:522;a:1:{i:0;i:523;}i:524;a:1:{i:0;i:525;}i:526;a:1:{i:0;i:527;}i:528;a:1:{i:0;i:529;}i:530;a:1:{i:0;i:531;}i:532;a:1:{i:0;i:533;}i:534;a:1:{i:0;i:535;}i:536;a:1:{i:0;i:537;}i:538;a:1:{i:0;i:539;}i:540;a:1:{i:0;i:541;}i:542;a:1:{i:0;i:543;}i:544;a:1:{i:0;i:414;}i:546;a:1:{i:0;i:547;}i:548;a:1:{i:0;i:549;}i:550;a:1:{i:0;i:551;}i:552;a:1:{i:0;i:553;}i:554;a:1:{i:0;i:555;}i:556;a:1:{i:0;i:557;}i:558;a:1:{i:0;i:559;}i:560;a:1:{i:0;i:561;}i:562;a:1:{i:0;i:563;}i:837;a:1:{i:0;i:953;}i:890;a:2:{i:0;i:32;i:1;i:953;}i:902;a:1:{i:0;i:940;}i:904;a:1:{i:0;i:941;}i:905;a:1:{i:0;i:942;}i:906;a:1:{i:0;i:943;}i:908;a:1:{i:0;i:972;}i:910;a:1:{i:0;i:973;}i:911;a:1:{i:0;i:974;}i:912;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:913;a:1:{i:0;i:945;}i:914;a:1:{i:0;i:946;}i:915;a:1:{i:0;i:947;}i:916;a:1:{i:0;i:948;}i:917;a:1:{i:0;i:949;}i:918;a:1:{i:0;i:950;}i:919;a:1:{i:0;i:951;}i:920;a:1:{i:0;i:952;}i:921;a:1:{i:0;i:953;}i:922;a:1:{i:0;i:954;}i:923;a:1:{i:0;i:955;}i:924;a:1:{i:0;i:956;}i:925;a:1:{i:0;i:957;}i:926;a:1:{i:0;i:958;}i:927;a:1:{i:0;i:959;}i:928;a:1:{i:0;i:960;}i:929;a:1:{i:0;i:961;}i:931;a:1:{i:0;i:963;}i:932;a:1:{i:0;i:964;}i:933;a:1:{i:0;i:965;}i:934;a:1:{i:0;i:966;}i:935;a:1:{i:0;i:967;}i:936;a:1:{i:0;i:968;}i:937;a:1:{i:0;i:969;}i:938;a:1:{i:0;i:970;}i:939;a:1:{i:0;i:971;}i:944;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:962;a:1:{i:0;i:963;}i:976;a:1:{i:0;i:946;}i:977;a:1:{i:0;i:952;}i:978;a:1:{i:0;i:965;}i:979;a:1:{i:0;i:973;}i:980;a:1:{i:0;i:971;}i:981;a:1:{i:0;i:966;}i:982;a:1:{i:0;i:960;}i:984;a:1:{i:0;i:985;}i:986;a:1:{i:0;i:987;}i:988;a:1:{i:0;i:989;}i:990;a:1:{i:0;i:991;}i:992;a:1:{i:0;i:993;}i:994;a:1:{i:0;i:995;}i:996;a:1:{i:0;i:997;}i:998;a:1:{i:0;i:999;}i:1000;a:1:{i:0;i:1001;}i:1002;a:1:{i:0;i:1003;}i:1004;a:1:{i:0;i:1005;}i:1006;a:1:{i:0;i:1007;}i:1008;a:1:{i:0;i:954;}i:1009;a:1:{i:0;i:961;}i:1010;a:1:{i:0;i:963;}i:1012;a:1:{i:0;i:952;}i:1013;a:1:{i:0;i:949;}i:1024;a:1:{i:0;i:1104;}i:1025;a:1:{i:0;i:1105;}i:1026;a:1:{i:0;i:1106;}i:1027;a:1:{i:0;i:1107;}i:1028;a:1:{i:0;i:1108;}i:1029;a:1:{i:0;i:1109;}i:1030;a:1:{i:0;i:1110;}i:1031;a:1:{i:0;i:1111;}i:1032;a:1:{i:0;i:1112;}i:1033;a:1:{i:0;i:1113;}i:1034;a:1:{i:0;i:1114;}i:1035;a:1:{i:0;i:1115;}i:1036;a:1:{i:0;i:1116;}i:1037;a:1:{i:0;i:1117;}i:1038;a:1:{i:0;i:1118;}i:1039;a:1:{i:0;i:1119;}i:1040;a:1:{i:0;i:1072;}i:1041;a:1:{i:0;i:1073;}i:1042;a:1:{i:0;i:1074;}i:1043;a:1:{i:0;i:1075;}i:1044;a:1:{i:0;i:1076;}i:1045;a:1:{i:0;i:1077;}i:1046;a:1:{i:0;i:1078;}i:1047;a:1:{i:0;i:1079;}i:1048;a:1:{i:0;i:1080;}i:1049;a:1:{i:0;i:1081;}i:1050;a:1:{i:0;i:1082;}i:1051;a:1:{i:0;i:1083;}i:1052;a:1:{i:0;i:1084;}i:1053;a:1:{i:0;i:1085;}i:1054;a:1:{i:0;i:1086;}i:1055;a:1:{i:0;i:1087;}i:1056;a:1:{i:0;i:1088;}i:1057;a:1:{i:0;i:1089;}i:1058;a:1:{i:0;i:1090;}i:1059;a:1:{i:0;i:1091;}i:1060;a:1:{i:0;i:1092;}i:1061;a:1:{i:0;i:1093;}i:1062;a:1:{i:0;i:1094;}i:1063;a:1:{i:0;i:1095;}i:1064;a:1:{i:0;i:1096;}i:1065;a:1:{i:0;i:1097;}i:1066;a:1:{i:0;i:1098;}i:1067;a:1:{i:0;i:1099;}i:1068;a:1:{i:0;i:1100;}i:1069;a:1:{i:0;i:1101;}i:1070;a:1:{i:0;i:1102;}i:1071;a:1:{i:0;i:1103;}i:1120;a:1:{i:0;i:1121;}i:1122;a:1:{i:0;i:1123;}i:1124;a:1:{i:0;i:1125;}i:1126;a:1:{i:0;i:1127;}i:1128;a:1:{i:0;i:1129;}i:1130;a:1:{i:0;i:1131;}i:1132;a:1:{i:0;i:1133;}i:1134;a:1:{i:0;i:1135;}i:1136;a:1:{i:0;i:1137;}i:1138;a:1:{i:0;i:1139;}i:1140;a:1:{i:0;i:1141;}i:1142;a:1:{i:0;i:1143;}i:1144;a:1:{i:0;i:1145;}i:1146;a:1:{i:0;i:1147;}i:1148;a:1:{i:0;i:1149;}i:1150;a:1:{i:0;i:1151;}i:1152;a:1:{i:0;i:1153;}i:1162;a:1:{i:0;i:1163;}i:1164;a:1:{i:0;i:1165;}i:1166;a:1:{i:0;i:1167;}i:1168;a:1:{i:0;i:1169;}i:1170;a:1:{i:0;i:1171;}i:1172;a:1:{i:0;i:1173;}i:1174;a:1:{i:0;i:1175;}i:1176;a:1:{i:0;i:1177;}i:1178;a:1:{i:0;i:1179;}i:1180;a:1:{i:0;i:1181;}i:1182;a:1:{i:0;i:1183;}i:1184;a:1:{i:0;i:1185;}i:1186;a:1:{i:0;i:1187;}i:1188;a:1:{i:0;i:1189;}i:1190;a:1:{i:0;i:1191;}i:1192;a:1:{i:0;i:1193;}i:1194;a:1:{i:0;i:1195;}i:1196;a:1:{i:0;i:1197;}i:1198;a:1:{i:0;i:1199;}i:1200;a:1:{i:0;i:1201;}i:1202;a:1:{i:0;i:1203;}i:1204;a:1:{i:0;i:1205;}i:1206;a:1:{i:0;i:1207;}i:1208;a:1:{i:0;i:1209;}i:1210;a:1:{i:0;i:1211;}i:1212;a:1:{i:0;i:1213;}i:1214;a:1:{i:0;i:1215;}i:1217;a:1:{i:0;i:1218;}i:1219;a:1:{i:0;i:1220;}i:1221;a:1:{i:0;i:1222;}i:1223;a:1:{i:0;i:1224;}i:1225;a:1:{i:0;i:1226;}i:1227;a:1:{i:0;i:1228;}i:1229;a:1:{i:0;i:1230;}i:1232;a:1:{i:0;i:1233;}i:1234;a:1:{i:0;i:1235;}i:1236;a:1:{i:0;i:1237;}i:1238;a:1:{i:0;i:1239;}i:1240;a:1:{i:0;i:1241;}i:1242;a:1:{i:0;i:1243;}i:1244;a:1:{i:0;i:1245;}i:1246;a:1:{i:0;i:1247;}i:1248;a:1:{i:0;i:1249;}i:1250;a:1:{i:0;i:1251;}i:1252;a:1:{i:0;i:1253;}i:1254;a:1:{i:0;i:1255;}i:1256;a:1:{i:0;i:1257;}i:1258;a:1:{i:0;i:1259;}i:1260;a:1:{i:0;i:1261;}i:1262;a:1:{i:0;i:1263;}i:1264;a:1:{i:0;i:1265;}i:1266;a:1:{i:0;i:1267;}i:1268;a:1:{i:0;i:1269;}i:1272;a:1:{i:0;i:1273;}i:1280;a:1:{i:0;i:1281;}i:1282;a:1:{i:0;i:1283;}i:1284;a:1:{i:0;i:1285;}i:1286;a:1:{i:0;i:1287;}i:1288;a:1:{i:0;i:1289;}i:1290;a:1:{i:0;i:1291;}i:1292;a:1:{i:0;i:1293;}i:1294;a:1:{i:0;i:1295;}i:1329;a:1:{i:0;i:1377;}i:1330;a:1:{i:0;i:1378;}i:1331;a:1:{i:0;i:1379;}i:1332;a:1:{i:0;i:1380;}i:1333;a:1:{i:0;i:1381;}i:1334;a:1:{i:0;i:1382;}i:1335;a:1:{i:0;i:1383;}i:1336;a:1:{i:0;i:1384;}i:1337;a:1:{i:0;i:1385;}i:1338;a:1:{i:0;i:1386;}i:1339;a:1:{i:0;i:1387;}i:1340;a:1:{i:0;i:1388;}i:1341;a:1:{i:0;i:1389;}i:1342;a:1:{i:0;i:1390;}i:1343;a:1:{i:0;i:1391;}i:1344;a:1:{i:0;i:1392;}i:1345;a:1:{i:0;i:1393;}i:1346;a:1:{i:0;i:1394;}i:1347;a:1:{i:0;i:1395;}i:1348;a:1:{i:0;i:1396;}i:1349;a:1:{i:0;i:1397;}i:1350;a:1:{i:0;i:1398;}i:1351;a:1:{i:0;i:1399;}i:1352;a:1:{i:0;i:1400;}i:1353;a:1:{i:0;i:1401;}i:1354;a:1:{i:0;i:1402;}i:1355;a:1:{i:0;i:1403;}i:1356;a:1:{i:0;i:1404;}i:1357;a:1:{i:0;i:1405;}i:1358;a:1:{i:0;i:1406;}i:1359;a:1:{i:0;i:1407;}i:1360;a:1:{i:0;i:1408;}i:1361;a:1:{i:0;i:1409;}i:1362;a:1:{i:0;i:1410;}i:1363;a:1:{i:0;i:1411;}i:1364;a:1:{i:0;i:1412;}i:1365;a:1:{i:0;i:1413;}i:1366;a:1:{i:0;i:1414;}i:1415;a:2:{i:0;i:1381;i:1;i:1410;}i:7680;a:1:{i:0;i:7681;}i:7682;a:1:{i:0;i:7683;}i:7684;a:1:{i:0;i:7685;}i:7686;a:1:{i:0;i:7687;}i:7688;a:1:{i:0;i:7689;}i:7690;a:1:{i:0;i:7691;}i:7692;a:1:{i:0;i:7693;}i:7694;a:1:{i:0;i:7695;}i:7696;a:1:{i:0;i:7697;}i:7698;a:1:{i:0;i:7699;}i:7700;a:1:{i:0;i:7701;}i:7702;a:1:{i:0;i:7703;}i:7704;a:1:{i:0;i:7705;}i:7706;a:1:{i:0;i:7707;}i:7708;a:1:{i:0;i:7709;}i:7710;a:1:{i:0;i:7711;}i:7712;a:1:{i:0;i:7713;}i:7714;a:1:{i:0;i:7715;}i:7716;a:1:{i:0;i:7717;}i:7718;a:1:{i:0;i:7719;}i:7720;a:1:{i:0;i:7721;}i:7722;a:1:{i:0;i:7723;}i:7724;a:1:{i:0;i:7725;}i:7726;a:1:{i:0;i:7727;}i:7728;a:1:{i:0;i:7729;}i:7730;a:1:{i:0;i:7731;}i:7732;a:1:{i:0;i:7733;}i:7734;a:1:{i:0;i:7735;}i:7736;a:1:{i:0;i:7737;}i:7738;a:1:{i:0;i:7739;}i:7740;a:1:{i:0;i:7741;}i:7742;a:1:{i:0;i:7743;}i:7744;a:1:{i:0;i:7745;}i:7746;a:1:{i:0;i:7747;}i:7748;a:1:{i:0;i:7749;}i:7750;a:1:{i:0;i:7751;}i:7752;a:1:{i:0;i:7753;}i:7754;a:1:{i:0;i:7755;}i:7756;a:1:{i:0;i:7757;}i:7758;a:1:{i:0;i:7759;}i:7760;a:1:{i:0;i:7761;}i:7762;a:1:{i:0;i:7763;}i:7764;a:1:{i:0;i:7765;}i:7766;a:1:{i:0;i:7767;}i:7768;a:1:{i:0;i:7769;}i:7770;a:1:{i:0;i:7771;}i:7772;a:1:{i:0;i:7773;}i:7774;a:1:{i:0;i:7775;}i:7776;a:1:{i:0;i:7777;}i:7778;a:1:{i:0;i:7779;}i:7780;a:1:{i:0;i:7781;}i:7782;a:1:{i:0;i:7783;}i:7784;a:1:{i:0;i:7785;}i:7786;a:1:{i:0;i:7787;}i:7788;a:1:{i:0;i:7789;}i:7790;a:1:{i:0;i:7791;}i:7792;a:1:{i:0;i:7793;}i:7794;a:1:{i:0;i:7795;}i:7796;a:1:{i:0;i:7797;}i:7798;a:1:{i:0;i:7799;}i:7800;a:1:{i:0;i:7801;}i:7802;a:1:{i:0;i:7803;}i:7804;a:1:{i:0;i:7805;}i:7806;a:1:{i:0;i:7807;}i:7808;a:1:{i:0;i:7809;}i:7810;a:1:{i:0;i:7811;}i:7812;a:1:{i:0;i:7813;}i:7814;a:1:{i:0;i:7815;}i:7816;a:1:{i:0;i:7817;}i:7818;a:1:{i:0;i:7819;}i:7820;a:1:{i:0;i:7821;}i:7822;a:1:{i:0;i:7823;}i:7824;a:1:{i:0;i:7825;}i:7826;a:1:{i:0;i:7827;}i:7828;a:1:{i:0;i:7829;}i:7830;a:2:{i:0;i:104;i:1;i:817;}i:7831;a:2:{i:0;i:116;i:1;i:776;}i:7832;a:2:{i:0;i:119;i:1;i:778;}i:7833;a:2:{i:0;i:121;i:1;i:778;}i:7834;a:2:{i:0;i:97;i:1;i:702;}i:7835;a:1:{i:0;i:7777;}i:7840;a:1:{i:0;i:7841;}i:7842;a:1:{i:0;i:7843;}i:7844;a:1:{i:0;i:7845;}i:7846;a:1:{i:0;i:7847;}i:7848;a:1:{i:0;i:7849;}i:7850;a:1:{i:0;i:7851;}i:7852;a:1:{i:0;i:7853;}i:7854;a:1:{i:0;i:7855;}i:7856;a:1:{i:0;i:7857;}i:7858;a:1:{i:0;i:7859;}i:7860;a:1:{i:0;i:7861;}i:7862;a:1:{i:0;i:7863;}i:7864;a:1:{i:0;i:7865;}i:7866;a:1:{i:0;i:7867;}i:7868;a:1:{i:0;i:7869;}i:7870;a:1:{i:0;i:7871;}i:7872;a:1:{i:0;i:7873;}i:7874;a:1:{i:0;i:7875;}i:7876;a:1:{i:0;i:7877;}i:7878;a:1:{i:0;i:7879;}i:7880;a:1:{i:0;i:7881;}i:7882;a:1:{i:0;i:7883;}i:7884;a:1:{i:0;i:7885;}i:7886;a:1:{i:0;i:7887;}i:7888;a:1:{i:0;i:7889;}i:7890;a:1:{i:0;i:7891;}i:7892;a:1:{i:0;i:7893;}i:7894;a:1:{i:0;i:7895;}i:7896;a:1:{i:0;i:7897;}i:7898;a:1:{i:0;i:7899;}i:7900;a:1:{i:0;i:7901;}i:7902;a:1:{i:0;i:7903;}i:7904;a:1:{i:0;i:7905;}i:7906;a:1:{i:0;i:7907;}i:7908;a:1:{i:0;i:7909;}i:7910;a:1:{i:0;i:7911;}i:7912;a:1:{i:0;i:7913;}i:7914;a:1:{i:0;i:7915;}i:7916;a:1:{i:0;i:7917;}i:7918;a:1:{i:0;i:7919;}i:7920;a:1:{i:0;i:7921;}i:7922;a:1:{i:0;i:7923;}i:7924;a:1:{i:0;i:7925;}i:7926;a:1:{i:0;i:7927;}i:7928;a:1:{i:0;i:7929;}i:7944;a:1:{i:0;i:7936;}i:7945;a:1:{i:0;i:7937;}i:7946;a:1:{i:0;i:7938;}i:7947;a:1:{i:0;i:7939;}i:7948;a:1:{i:0;i:7940;}i:7949;a:1:{i:0;i:7941;}i:7950;a:1:{i:0;i:7942;}i:7951;a:1:{i:0;i:7943;}i:7960;a:1:{i:0;i:7952;}i:7961;a:1:{i:0;i:7953;}i:7962;a:1:{i:0;i:7954;}i:7963;a:1:{i:0;i:7955;}i:7964;a:1:{i:0;i:7956;}i:7965;a:1:{i:0;i:7957;}i:7976;a:1:{i:0;i:7968;}i:7977;a:1:{i:0;i:7969;}i:7978;a:1:{i:0;i:7970;}i:7979;a:1:{i:0;i:7971;}i:7980;a:1:{i:0;i:7972;}i:7981;a:1:{i:0;i:7973;}i:7982;a:1:{i:0;i:7974;}i:7983;a:1:{i:0;i:7975;}i:7992;a:1:{i:0;i:7984;}i:7993;a:1:{i:0;i:7985;}i:7994;a:1:{i:0;i:7986;}i:7995;a:1:{i:0;i:7987;}i:7996;a:1:{i:0;i:7988;}i:7997;a:1:{i:0;i:7989;}i:7998;a:1:{i:0;i:7990;}i:7999;a:1:{i:0;i:7991;}i:8008;a:1:{i:0;i:8000;}i:8009;a:1:{i:0;i:8001;}i:8010;a:1:{i:0;i:8002;}i:8011;a:1:{i:0;i:8003;}i:8012;a:1:{i:0;i:8004;}i:8013;a:1:{i:0;i:8005;}i:8016;a:2:{i:0;i:965;i:1;i:787;}i:8018;a:3:{i:0;i:965;i:1;i:787;i:2;i:768;}i:8020;a:3:{i:0;i:965;i:1;i:787;i:2;i:769;}i:8022;a:3:{i:0;i:965;i:1;i:787;i:2;i:834;}i:8025;a:1:{i:0;i:8017;}i:8027;a:1:{i:0;i:8019;}i:8029;a:1:{i:0;i:8021;}i:8031;a:1:{i:0;i:8023;}i:8040;a:1:{i:0;i:8032;}i:8041;a:1:{i:0;i:8033;}i:8042;a:1:{i:0;i:8034;}i:8043;a:1:{i:0;i:8035;}i:8044;a:1:{i:0;i:8036;}i:8045;a:1:{i:0;i:8037;}i:8046;a:1:{i:0;i:8038;}i:8047;a:1:{i:0;i:8039;}i:8064;a:2:{i:0;i:7936;i:1;i:953;}i:8065;a:2:{i:0;i:7937;i:1;i:953;}i:8066;a:2:{i:0;i:7938;i:1;i:953;}i:8067;a:2:{i:0;i:7939;i:1;i:953;}i:8068;a:2:{i:0;i:7940;i:1;i:953;}i:8069;a:2:{i:0;i:7941;i:1;i:953;}i:8070;a:2:{i:0;i:7942;i:1;i:953;}i:8071;a:2:{i:0;i:7943;i:1;i:953;}i:8072;a:2:{i:0;i:7936;i:1;i:953;}i:8073;a:2:{i:0;i:7937;i:1;i:953;}i:8074;a:2:{i:0;i:7938;i:1;i:953;}i:8075;a:2:{i:0;i:7939;i:1;i:953;}i:8076;a:2:{i:0;i:7940;i:1;i:953;}i:8077;a:2:{i:0;i:7941;i:1;i:953;}i:8078;a:2:{i:0;i:7942;i:1;i:953;}i:8079;a:2:{i:0;i:7943;i:1;i:953;}i:8080;a:2:{i:0;i:7968;i:1;i:953;}i:8081;a:2:{i:0;i:7969;i:1;i:953;}i:8082;a:2:{i:0;i:7970;i:1;i:953;}i:8083;a:2:{i:0;i:7971;i:1;i:953;}i:8084;a:2:{i:0;i:7972;i:1;i:953;}i:8085;a:2:{i:0;i:7973;i:1;i:953;}i:8086;a:2:{i:0;i:7974;i:1;i:953;}i:8087;a:2:{i:0;i:7975;i:1;i:953;}i:8088;a:2:{i:0;i:7968;i:1;i:953;}i:8089;a:2:{i:0;i:7969;i:1;i:953;}i:8090;a:2:{i:0;i:7970;i:1;i:953;}i:8091;a:2:{i:0;i:7971;i:1;i:953;}i:8092;a:2:{i:0;i:7972;i:1;i:953;}i:8093;a:2:{i:0;i:7973;i:1;i:953;}i:8094;a:2:{i:0;i:7974;i:1;i:953;}i:8095;a:2:{i:0;i:7975;i:1;i:953;}i:8096;a:2:{i:0;i:8032;i:1;i:953;}i:8097;a:2:{i:0;i:8033;i:1;i:953;}i:8098;a:2:{i:0;i:8034;i:1;i:953;}i:8099;a:2:{i:0;i:8035;i:1;i:953;}i:8100;a:2:{i:0;i:8036;i:1;i:953;}i:8101;a:2:{i:0;i:8037;i:1;i:953;}i:8102;a:2:{i:0;i:8038;i:1;i:953;}i:8103;a:2:{i:0;i:8039;i:1;i:953;}i:8104;a:2:{i:0;i:8032;i:1;i:953;}i:8105;a:2:{i:0;i:8033;i:1;i:953;}i:8106;a:2:{i:0;i:8034;i:1;i:953;}i:8107;a:2:{i:0;i:8035;i:1;i:953;}i:8108;a:2:{i:0;i:8036;i:1;i:953;}i:8109;a:2:{i:0;i:8037;i:1;i:953;}i:8110;a:2:{i:0;i:8038;i:1;i:953;}i:8111;a:2:{i:0;i:8039;i:1;i:953;}i:8114;a:2:{i:0;i:8048;i:1;i:953;}i:8115;a:2:{i:0;i:945;i:1;i:953;}i:8116;a:2:{i:0;i:940;i:1;i:953;}i:8118;a:2:{i:0;i:945;i:1;i:834;}i:8119;a:3:{i:0;i:945;i:1;i:834;i:2;i:953;}i:8120;a:1:{i:0;i:8112;}i:8121;a:1:{i:0;i:8113;}i:8122;a:1:{i:0;i:8048;}i:8123;a:1:{i:0;i:8049;}i:8124;a:2:{i:0;i:945;i:1;i:953;}i:8126;a:1:{i:0;i:953;}i:8130;a:2:{i:0;i:8052;i:1;i:953;}i:8131;a:2:{i:0;i:951;i:1;i:953;}i:8132;a:2:{i:0;i:942;i:1;i:953;}i:8134;a:2:{i:0;i:951;i:1;i:834;}i:8135;a:3:{i:0;i:951;i:1;i:834;i:2;i:953;}i:8136;a:1:{i:0;i:8050;}i:8137;a:1:{i:0;i:8051;}i:8138;a:1:{i:0;i:8052;}i:8139;a:1:{i:0;i:8053;}i:8140;a:2:{i:0;i:951;i:1;i:953;}i:8146;a:3:{i:0;i:953;i:1;i:776;i:2;i:768;}i:8147;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:8150;a:2:{i:0;i:953;i:1;i:834;}i:8151;a:3:{i:0;i:953;i:1;i:776;i:2;i:834;}i:8152;a:1:{i:0;i:8144;}i:8153;a:1:{i:0;i:8145;}i:8154;a:1:{i:0;i:8054;}i:8155;a:1:{i:0;i:8055;}i:8162;a:3:{i:0;i:965;i:1;i:776;i:2;i:768;}i:8163;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:8164;a:2:{i:0;i:961;i:1;i:787;}i:8166;a:2:{i:0;i:965;i:1;i:834;}i:8167;a:3:{i:0;i:965;i:1;i:776;i:2;i:834;}i:8168;a:1:{i:0;i:8160;}i:8169;a:1:{i:0;i:8161;}i:8170;a:1:{i:0;i:8058;}i:8171;a:1:{i:0;i:8059;}i:8172;a:1:{i:0;i:8165;}i:8178;a:2:{i:0;i:8060;i:1;i:953;}i:8179;a:2:{i:0;i:969;i:1;i:953;}i:8180;a:2:{i:0;i:974;i:1;i:953;}i:8182;a:2:{i:0;i:969;i:1;i:834;}i:8183;a:3:{i:0;i:969;i:1;i:834;i:2;i:953;}i:8184;a:1:{i:0;i:8056;}i:8185;a:1:{i:0;i:8057;}i:8186;a:1:{i:0;i:8060;}i:8187;a:1:{i:0;i:8061;}i:8188;a:2:{i:0;i:969;i:1;i:953;}i:8360;a:2:{i:0;i:114;i:1;i:115;}i:8450;a:1:{i:0;i:99;}i:8451;a:2:{i:0;i:176;i:1;i:99;}i:8455;a:1:{i:0;i:603;}i:8457;a:2:{i:0;i:176;i:1;i:102;}i:8459;a:1:{i:0;i:104;}i:8460;a:1:{i:0;i:104;}i:8461;a:1:{i:0;i:104;}i:8464;a:1:{i:0;i:105;}i:8465;a:1:{i:0;i:105;}i:8466;a:1:{i:0;i:108;}i:8469;a:1:{i:0;i:110;}i:8470;a:2:{i:0;i:110;i:1;i:111;}i:8473;a:1:{i:0;i:112;}i:8474;a:1:{i:0;i:113;}i:8475;a:1:{i:0;i:114;}i:8476;a:1:{i:0;i:114;}i:8477;a:1:{i:0;i:114;}i:8480;a:2:{i:0;i:115;i:1;i:109;}i:8481;a:3:{i:0;i:116;i:1;i:101;i:2;i:108;}i:8482;a:2:{i:0;i:116;i:1;i:109;}i:8484;a:1:{i:0;i:122;}i:8486;a:1:{i:0;i:969;}i:8488;a:1:{i:0;i:122;}i:8490;a:1:{i:0;i:107;}i:8491;a:1:{i:0;i:229;}i:8492;a:1:{i:0;i:98;}i:8493;a:1:{i:0;i:99;}i:8496;a:1:{i:0;i:101;}i:8497;a:1:{i:0;i:102;}i:8499;a:1:{i:0;i:109;}i:8510;a:1:{i:0;i:947;}i:8511;a:1:{i:0;i:960;}i:8517;a:1:{i:0;i:100;}i:8544;a:1:{i:0;i:8560;}i:8545;a:1:{i:0;i:8561;}i:8546;a:1:{i:0;i:8562;}i:8547;a:1:{i:0;i:8563;}i:8548;a:1:{i:0;i:8564;}i:8549;a:1:{i:0;i:8565;}i:8550;a:1:{i:0;i:8566;}i:8551;a:1:{i:0;i:8567;}i:8552;a:1:{i:0;i:8568;}i:8553;a:1:{i:0;i:8569;}i:8554;a:1:{i:0;i:8570;}i:8555;a:1:{i:0;i:8571;}i:8556;a:1:{i:0;i:8572;}i:8557;a:1:{i:0;i:8573;}i:8558;a:1:{i:0;i:8574;}i:8559;a:1:{i:0;i:8575;}i:9398;a:1:{i:0;i:9424;}i:9399;a:1:{i:0;i:9425;}i:9400;a:1:{i:0;i:9426;}i:9401;a:1:{i:0;i:9427;}i:9402;a:1:{i:0;i:9428;}i:9403;a:1:{i:0;i:9429;}i:9404;a:1:{i:0;i:9430;}i:9405;a:1:{i:0;i:9431;}i:9406;a:1:{i:0;i:9432;}i:9407;a:1:{i:0;i:9433;}i:9408;a:1:{i:0;i:9434;}i:9409;a:1:{i:0;i:9435;}i:9410;a:1:{i:0;i:9436;}i:9411;a:1:{i:0;i:9437;}i:9412;a:1:{i:0;i:9438;}i:9413;a:1:{i:0;i:9439;}i:9414;a:1:{i:0;i:9440;}i:9415;a:1:{i:0;i:9441;}i:9416;a:1:{i:0;i:9442;}i:9417;a:1:{i:0;i:9443;}i:9418;a:1:{i:0;i:9444;}i:9419;a:1:{i:0;i:9445;}i:9420;a:1:{i:0;i:9446;}i:9421;a:1:{i:0;i:9447;}i:9422;a:1:{i:0;i:9448;}i:9423;a:1:{i:0;i:9449;}i:13169;a:3:{i:0;i:104;i:1;i:112;i:2;i:97;}i:13171;a:2:{i:0;i:97;i:1;i:117;}i:13173;a:2:{i:0;i:111;i:1;i:118;}i:13184;a:2:{i:0;i:112;i:1;i:97;}i:13185;a:2:{i:0;i:110;i:1;i:97;}i:13186;a:2:{i:0;i:956;i:1;i:97;}i:13187;a:2:{i:0;i:109;i:1;i:97;}i:13188;a:2:{i:0;i:107;i:1;i:97;}i:13189;a:2:{i:0;i:107;i:1;i:98;}i:13190;a:2:{i:0;i:109;i:1;i:98;}i:13191;a:2:{i:0;i:103;i:1;i:98;}i:13194;a:2:{i:0;i:112;i:1;i:102;}i:13195;a:2:{i:0;i:110;i:1;i:102;}i:13196;a:2:{i:0;i:956;i:1;i:102;}i:13200;a:2:{i:0;i:104;i:1;i:122;}i:13201;a:3:{i:0;i:107;i:1;i:104;i:2;i:122;}i:13202;a:3:{i:0;i:109;i:1;i:104;i:2;i:122;}i:13203;a:3:{i:0;i:103;i:1;i:104;i:2;i:122;}i:13204;a:3:{i:0;i:116;i:1;i:104;i:2;i:122;}i:13225;a:2:{i:0;i:112;i:1;i:97;}i:13226;a:3:{i:0;i:107;i:1;i:112;i:2;i:97;}i:13227;a:3:{i:0;i:109;i:1;i:112;i:2;i:97;}i:13228;a:3:{i:0;i:103;i:1;i:112;i:2;i:97;}i:13236;a:2:{i:0;i:112;i:1;i:118;}i:13237;a:2:{i:0;i:110;i:1;i:118;}i:13238;a:2:{i:0;i:956;i:1;i:118;}i:13239;a:2:{i:0;i:109;i:1;i:118;}i:13240;a:2:{i:0;i:107;i:1;i:118;}i:13241;a:2:{i:0;i:109;i:1;i:118;}i:13242;a:2:{i:0;i:112;i:1;i:119;}i:13243;a:2:{i:0;i:110;i:1;i:119;}i:13244;a:2:{i:0;i:956;i:1;i:119;}i:13245;a:2:{i:0;i:109;i:1;i:119;}i:13246;a:2:{i:0;i:107;i:1;i:119;}i:13247;a:2:{i:0;i:109;i:1;i:119;}i:13248;a:2:{i:0;i:107;i:1;i:969;}i:13249;a:2:{i:0;i:109;i:1;i:969;}i:13251;a:2:{i:0;i:98;i:1;i:113;}i:13254;a:4:{i:0;i:99;i:1;i:8725;i:2;i:107;i:3;i:103;}i:13255;a:3:{i:0;i:99;i:1;i:111;i:2;i:46;}i:13256;a:2:{i:0;i:100;i:1;i:98;}i:13257;a:2:{i:0;i:103;i:1;i:121;}i:13259;a:2:{i:0;i:104;i:1;i:112;}i:13261;a:2:{i:0;i:107;i:1;i:107;}i:13262;a:2:{i:0;i:107;i:1;i:109;}i:13271;a:2:{i:0;i:112;i:1;i:104;}i:13273;a:3:{i:0;i:112;i:1;i:112;i:2;i:109;}i:13274;a:2:{i:0;i:112;i:1;i:114;}i:13276;a:2:{i:0;i:115;i:1;i:118;}i:13277;a:2:{i:0;i:119;i:1;i:98;}i:64256;a:2:{i:0;i:102;i:1;i:102;}i:64257;a:2:{i:0;i:102;i:1;i:105;}i:64258;a:2:{i:0;i:102;i:1;i:108;}i:64259;a:3:{i:0;i:102;i:1;i:102;i:2;i:105;}i:64260;a:3:{i:0;i:102;i:1;i:102;i:2;i:108;}i:64261;a:2:{i:0;i:115;i:1;i:116;}i:64262;a:2:{i:0;i:115;i:1;i:116;}i:64275;a:2:{i:0;i:1396;i:1;i:1398;}i:64276;a:2:{i:0;i:1396;i:1;i:1381;}i:64277;a:2:{i:0;i:1396;i:1;i:1387;}i:64278;a:2:{i:0;i:1406;i:1;i:1398;}i:64279;a:2:{i:0;i:1396;i:1;i:1389;}i:65313;a:1:{i:0;i:65345;}i:65314;a:1:{i:0;i:65346;}i:65315;a:1:{i:0;i:65347;}i:65316;a:1:{i:0;i:65348;}i:65317;a:1:{i:0;i:65349;}i:65318;a:1:{i:0;i:65350;}i:65319;a:1:{i:0;i:65351;}i:65320;a:1:{i:0;i:65352;}i:65321;a:1:{i:0;i:65353;}i:65322;a:1:{i:0;i:65354;}i:65323;a:1:{i:0;i:65355;}i:65324;a:1:{i:0;i:65356;}i:65325;a:1:{i:0;i:65357;}i:65326;a:1:{i:0;i:65358;}i:65327;a:1:{i:0;i:65359;}i:65328;a:1:{i:0;i:65360;}i:65329;a:1:{i:0;i:65361;}i:65330;a:1:{i:0;i:65362;}i:65331;a:1:{i:0;i:65363;}i:65332;a:1:{i:0;i:65364;}i:65333;a:1:{i:0;i:65365;}i:65334;a:1:{i:0;i:65366;}i:65335;a:1:{i:0;i:65367;}i:65336;a:1:{i:0;i:65368;}i:65337;a:1:{i:0;i:65369;}i:65338;a:1:{i:0;i:65370;}i:66560;a:1:{i:0;i:66600;}i:66561;a:1:{i:0;i:66601;}i:66562;a:1:{i:0;i:66602;}i:66563;a:1:{i:0;i:66603;}i:66564;a:1:{i:0;i:66604;}i:66565;a:1:{i:0;i:66605;}i:66566;a:1:{i:0;i:66606;}i:66567;a:1:{i:0;i:66607;}i:66568;a:1:{i:0;i:66608;}i:66569;a:1:{i:0;i:66609;}i:66570;a:1:{i:0;i:66610;}i:66571;a:1:{i:0;i:66611;}i:66572;a:1:{i:0;i:66612;}i:66573;a:1:{i:0;i:66613;}i:66574;a:1:{i:0;i:66614;}i:66575;a:1:{i:0;i:66615;}i:66576;a:1:{i:0;i:66616;}i:66577;a:1:{i:0;i:66617;}i:66578;a:1:{i:0;i:66618;}i:66579;a:1:{i:0;i:66619;}i:66580;a:1:{i:0;i:66620;}i:66581;a:1:{i:0;i:66621;}i:66582;a:1:{i:0;i:66622;}i:66583;a:1:{i:0;i:66623;}i:66584;a:1:{i:0;i:66624;}i:66585;a:1:{i:0;i:66625;}i:66586;a:1:{i:0;i:66626;}i:66587;a:1:{i:0;i:66627;}i:66588;a:1:{i:0;i:66628;}i:66589;a:1:{i:0;i:66629;}i:66590;a:1:{i:0;i:66630;}i:66591;a:1:{i:0;i:66631;}i:66592;a:1:{i:0;i:66632;}i:66593;a:1:{i:0;i:66633;}i:66594;a:1:{i:0;i:66634;}i:66595;a:1:{i:0;i:66635;}i:66596;a:1:{i:0;i:66636;}i:66597;a:1:{i:0;i:66637;}i:119808;a:1:{i:0;i:97;}i:119809;a:1:{i:0;i:98;}i:119810;a:1:{i:0;i:99;}i:119811;a:1:{i:0;i:100;}i:119812;a:1:{i:0;i:101;}i:119813;a:1:{i:0;i:102;}i:119814;a:1:{i:0;i:103;}i:119815;a:1:{i:0;i:104;}i:119816;a:1:{i:0;i:105;}i:119817;a:1:{i:0;i:106;}i:119818;a:1:{i:0;i:107;}i:119819;a:1:{i:0;i:108;}i:119820;a:1:{i:0;i:109;}i:119821;a:1:{i:0;i:110;}i:119822;a:1:{i:0;i:111;}i:119823;a:1:{i:0;i:112;}i:119824;a:1:{i:0;i:113;}i:119825;a:1:{i:0;i:114;}i:119826;a:1:{i:0;i:115;}i:119827;a:1:{i:0;i:116;}i:119828;a:1:{i:0;i:117;}i:119829;a:1:{i:0;i:118;}i:119830;a:1:{i:0;i:119;}i:119831;a:1:{i:0;i:120;}i:119832;a:1:{i:0;i:121;}i:119833;a:1:{i:0;i:122;}i:119860;a:1:{i:0;i:97;}i:119861;a:1:{i:0;i:98;}i:119862;a:1:{i:0;i:99;}i:119863;a:1:{i:0;i:100;}i:119864;a:1:{i:0;i:101;}i:119865;a:1:{i:0;i:102;}i:119866;a:1:{i:0;i:103;}i:119867;a:1:{i:0;i:104;}i:119868;a:1:{i:0;i:105;}i:119869;a:1:{i:0;i:106;}i:119870;a:1:{i:0;i:107;}i:119871;a:1:{i:0;i:108;}i:119872;a:1:{i:0;i:109;}i:119873;a:1:{i:0;i:110;}i:119874;a:1:{i:0;i:111;}i:119875;a:1:{i:0;i:112;}i:119876;a:1:{i:0;i:113;}i:119877;a:1:{i:0;i:114;}i:119878;a:1:{i:0;i:115;}i:119879;a:1:{i:0;i:116;}i:119880;a:1:{i:0;i:117;}i:119881;a:1:{i:0;i:118;}i:119882;a:1:{i:0;i:119;}i:119883;a:1:{i:0;i:120;}i:119884;a:1:{i:0;i:121;}i:119885;a:1:{i:0;i:122;}i:119912;a:1:{i:0;i:97;}i:119913;a:1:{i:0;i:98;}i:119914;a:1:{i:0;i:99;}i:119915;a:1:{i:0;i:100;}i:119916;a:1:{i:0;i:101;}i:119917;a:1:{i:0;i:102;}i:119918;a:1:{i:0;i:103;}i:119919;a:1:{i:0;i:104;}i:119920;a:1:{i:0;i:105;}i:119921;a:1:{i:0;i:106;}i:119922;a:1:{i:0;i:107;}i:119923;a:1:{i:0;i:108;}i:119924;a:1:{i:0;i:109;}i:119925;a:1:{i:0;i:110;}i:119926;a:1:{i:0;i:111;}i:119927;a:1:{i:0;i:112;}i:119928;a:1:{i:0;i:113;}i:119929;a:1:{i:0;i:114;}i:119930;a:1:{i:0;i:115;}i:119931;a:1:{i:0;i:116;}i:119932;a:1:{i:0;i:117;}i:119933;a:1:{i:0;i:118;}i:119934;a:1:{i:0;i:119;}i:119935;a:1:{i:0;i:120;}i:119936;a:1:{i:0;i:121;}i:119937;a:1:{i:0;i:122;}i:119964;a:1:{i:0;i:97;}i:119966;a:1:{i:0;i:99;}i:119967;a:1:{i:0;i:100;}i:119970;a:1:{i:0;i:103;}i:119973;a:1:{i:0;i:106;}i:119974;a:1:{i:0;i:107;}i:119977;a:1:{i:0;i:110;}i:119978;a:1:{i:0;i:111;}i:119979;a:1:{i:0;i:112;}i:119980;a:1:{i:0;i:113;}i:119982;a:1:{i:0;i:115;}i:119983;a:1:{i:0;i:116;}i:119984;a:1:{i:0;i:117;}i:119985;a:1:{i:0;i:118;}i:119986;a:1:{i:0;i:119;}i:119987;a:1:{i:0;i:120;}i:119988;a:1:{i:0;i:121;}i:119989;a:1:{i:0;i:122;}i:120016;a:1:{i:0;i:97;}i:120017;a:1:{i:0;i:98;}i:120018;a:1:{i:0;i:99;}i:120019;a:1:{i:0;i:100;}i:120020;a:1:{i:0;i:101;}i:120021;a:1:{i:0;i:102;}i:120022;a:1:{i:0;i:103;}i:120023;a:1:{i:0;i:104;}i:120024;a:1:{i:0;i:105;}i:120025;a:1:{i:0;i:106;}i:120026;a:1:{i:0;i:107;}i:120027;a:1:{i:0;i:108;}i:120028;a:1:{i:0;i:109;}i:120029;a:1:{i:0;i:110;}i:120030;a:1:{i:0;i:111;}i:120031;a:1:{i:0;i:112;}i:120032;a:1:{i:0;i:113;}i:120033;a:1:{i:0;i:114;}i:120034;a:1:{i:0;i:115;}i:120035;a:1:{i:0;i:116;}i:120036;a:1:{i:0;i:117;}i:120037;a:1:{i:0;i:118;}i:120038;a:1:{i:0;i:119;}i:120039;a:1:{i:0;i:120;}i:120040;a:1:{i:0;i:121;}i:120041;a:1:{i:0;i:122;}i:120068;a:1:{i:0;i:97;}i:120069;a:1:{i:0;i:98;}i:120071;a:1:{i:0;i:100;}i:120072;a:1:{i:0;i:101;}i:120073;a:1:{i:0;i:102;}i:120074;a:1:{i:0;i:103;}i:120077;a:1:{i:0;i:106;}i:120078;a:1:{i:0;i:107;}i:120079;a:1:{i:0;i:108;}i:120080;a:1:{i:0;i:109;}i:120081;a:1:{i:0;i:110;}i:120082;a:1:{i:0;i:111;}i:120083;a:1:{i:0;i:112;}i:120084;a:1:{i:0;i:113;}i:120086;a:1:{i:0;i:115;}i:120087;a:1:{i:0;i:116;}i:120088;a:1:{i:0;i:117;}i:120089;a:1:{i:0;i:118;}i:120090;a:1:{i:0;i:119;}i:120091;a:1:{i:0;i:120;}i:120092;a:1:{i:0;i:121;}i:120120;a:1:{i:0;i:97;}i:120121;a:1:{i:0;i:98;}i:120123;a:1:{i:0;i:100;}i:120124;a:1:{i:0;i:101;}i:120125;a:1:{i:0;i:102;}i:120126;a:1:{i:0;i:103;}i:120128;a:1:{i:0;i:105;}i:120129;a:1:{i:0;i:106;}i:120130;a:1:{i:0;i:107;}i:120131;a:1:{i:0;i:108;}i:120132;a:1:{i:0;i:109;}i:120134;a:1:{i:0;i:111;}i:120138;a:1:{i:0;i:115;}i:120139;a:1:{i:0;i:116;}i:120140;a:1:{i:0;i:117;}i:120141;a:1:{i:0;i:118;}i:120142;a:1:{i:0;i:119;}i:120143;a:1:{i:0;i:120;}i:120144;a:1:{i:0;i:121;}i:120172;a:1:{i:0;i:97;}i:120173;a:1:{i:0;i:98;}i:120174;a:1:{i:0;i:99;}i:120175;a:1:{i:0;i:100;}i:120176;a:1:{i:0;i:101;}i:120177;a:1:{i:0;i:102;}i:120178;a:1:{i:0;i:103;}i:120179;a:1:{i:0;i:104;}i:120180;a:1:{i:0;i:105;}i:120181;a:1:{i:0;i:106;}i:120182;a:1:{i:0;i:107;}i:120183;a:1:{i:0;i:108;}i:120184;a:1:{i:0;i:109;}i:120185;a:1:{i:0;i:110;}i:120186;a:1:{i:0;i:111;}i:120187;a:1:{i:0;i:112;}i:120188;a:1:{i:0;i:113;}i:120189;a:1:{i:0;i:114;}i:120190;a:1:{i:0;i:115;}i:120191;a:1:{i:0;i:116;}i:120192;a:1:{i:0;i:117;}i:120193;a:1:{i:0;i:118;}i:120194;a:1:{i:0;i:119;}i:120195;a:1:{i:0;i:120;}i:120196;a:1:{i:0;i:121;}i:120197;a:1:{i:0;i:122;}i:120224;a:1:{i:0;i:97;}i:120225;a:1:{i:0;i:98;}i:120226;a:1:{i:0;i:99;}i:120227;a:1:{i:0;i:100;}i:120228;a:1:{i:0;i:101;}i:120229;a:1:{i:0;i:102;}i:120230;a:1:{i:0;i:103;}i:120231;a:1:{i:0;i:104;}i:120232;a:1:{i:0;i:105;}i:120233;a:1:{i:0;i:106;}i:120234;a:1:{i:0;i:107;}i:120235;a:1:{i:0;i:108;}i:120236;a:1:{i:0;i:109;}i:120237;a:1:{i:0;i:110;}i:120238;a:1:{i:0;i:111;}i:120239;a:1:{i:0;i:112;}i:120240;a:1:{i:0;i:113;}i:120241;a:1:{i:0;i:114;}i:120242;a:1:{i:0;i:115;}i:120243;a:1:{i:0;i:116;}i:120244;a:1:{i:0;i:117;}i:120245;a:1:{i:0;i:118;}i:120246;a:1:{i:0;i:119;}i:120247;a:1:{i:0;i:120;}i:120248;a:1:{i:0;i:121;}i:120249;a:1:{i:0;i:122;}i:120276;a:1:{i:0;i:97;}i:120277;a:1:{i:0;i:98;}i:120278;a:1:{i:0;i:99;}i:120279;a:1:{i:0;i:100;}i:120280;a:1:{i:0;i:101;}i:120281;a:1:{i:0;i:102;}i:120282;a:1:{i:0;i:103;}i:120283;a:1:{i:0;i:104;}i:120284;a:1:{i:0;i:105;}i:120285;a:1:{i:0;i:106;}i:120286;a:1:{i:0;i:107;}i:120287;a:1:{i:0;i:108;}i:120288;a:1:{i:0;i:109;}i:120289;a:1:{i:0;i:110;}i:120290;a:1:{i:0;i:111;}i:120291;a:1:{i:0;i:112;}i:120292;a:1:{i:0;i:113;}i:120293;a:1:{i:0;i:114;}i:120294;a:1:{i:0;i:115;}i:120295;a:1:{i:0;i:116;}i:120296;a:1:{i:0;i:117;}i:120297;a:1:{i:0;i:118;}i:120298;a:1:{i:0;i:119;}i:120299;a:1:{i:0;i:120;}i:120300;a:1:{i:0;i:121;}i:120301;a:1:{i:0;i:122;}i:120328;a:1:{i:0;i:97;}i:120329;a:1:{i:0;i:98;}i:120330;a:1:{i:0;i:99;}i:120331;a:1:{i:0;i:100;}i:120332;a:1:{i:0;i:101;}i:120333;a:1:{i:0;i:102;}i:120334;a:1:{i:0;i:103;}i:120335;a:1:{i:0;i:104;}i:120336;a:1:{i:0;i:105;}i:120337;a:1:{i:0;i:106;}i:120338;a:1:{i:0;i:107;}i:120339;a:1:{i:0;i:108;}i:120340;a:1:{i:0;i:109;}i:120341;a:1:{i:0;i:110;}i:120342;a:1:{i:0;i:111;}i:120343;a:1:{i:0;i:112;}i:120344;a:1:{i:0;i:113;}i:120345;a:1:{i:0;i:114;}i:120346;a:1:{i:0;i:115;}i:120347;a:1:{i:0;i:116;}i:120348;a:1:{i:0;i:117;}i:120349;a:1:{i:0;i:118;}i:120350;a:1:{i:0;i:119;}i:120351;a:1:{i:0;i:120;}i:120352;a:1:{i:0;i:121;}i:120353;a:1:{i:0;i:122;}i:120380;a:1:{i:0;i:97;}i:120381;a:1:{i:0;i:98;}i:120382;a:1:{i:0;i:99;}i:120383;a:1:{i:0;i:100;}i:120384;a:1:{i:0;i:101;}i:120385;a:1:{i:0;i:102;}i:120386;a:1:{i:0;i:103;}i:120387;a:1:{i:0;i:104;}i:120388;a:1:{i:0;i:105;}i:120389;a:1:{i:0;i:106;}i:120390;a:1:{i:0;i:107;}i:120391;a:1:{i:0;i:108;}i:120392;a:1:{i:0;i:109;}i:120393;a:1:{i:0;i:110;}i:120394;a:1:{i:0;i:111;}i:120395;a:1:{i:0;i:112;}i:120396;a:1:{i:0;i:113;}i:120397;a:1:{i:0;i:114;}i:120398;a:1:{i:0;i:115;}i:120399;a:1:{i:0;i:116;}i:120400;a:1:{i:0;i:117;}i:120401;a:1:{i:0;i:118;}i:120402;a:1:{i:0;i:119;}i:120403;a:1:{i:0;i:120;}i:120404;a:1:{i:0;i:121;}i:120405;a:1:{i:0;i:122;}i:120432;a:1:{i:0;i:97;}i:120433;a:1:{i:0;i:98;}i:120434;a:1:{i:0;i:99;}i:120435;a:1:{i:0;i:100;}i:120436;a:1:{i:0;i:101;}i:120437;a:1:{i:0;i:102;}i:120438;a:1:{i:0;i:103;}i:120439;a:1:{i:0;i:104;}i:120440;a:1:{i:0;i:105;}i:120441;a:1:{i:0;i:106;}i:120442;a:1:{i:0;i:107;}i:120443;a:1:{i:0;i:108;}i:120444;a:1:{i:0;i:109;}i:120445;a:1:{i:0;i:110;}i:120446;a:1:{i:0;i:111;}i:120447;a:1:{i:0;i:112;}i:120448;a:1:{i:0;i:113;}i:120449;a:1:{i:0;i:114;}i:120450;a:1:{i:0;i:115;}i:120451;a:1:{i:0;i:116;}i:120452;a:1:{i:0;i:117;}i:120453;a:1:{i:0;i:118;}i:120454;a:1:{i:0;i:119;}i:120455;a:1:{i:0;i:120;}i:120456;a:1:{i:0;i:121;}i:120457;a:1:{i:0;i:122;}i:120488;a:1:{i:0;i:945;}i:120489;a:1:{i:0;i:946;}i:120490;a:1:{i:0;i:947;}i:120491;a:1:{i:0;i:948;}i:120492;a:1:{i:0;i:949;}i:120493;a:1:{i:0;i:950;}i:120494;a:1:{i:0;i:951;}i:120495;a:1:{i:0;i:952;}i:120496;a:1:{i:0;i:953;}i:120497;a:1:{i:0;i:954;}i:120498;a:1:{i:0;i:955;}i:120499;a:1:{i:0;i:956;}i:120500;a:1:{i:0;i:957;}i:120501;a:1:{i:0;i:958;}i:120502;a:1:{i:0;i:959;}i:120503;a:1:{i:0;i:960;}i:120504;a:1:{i:0;i:961;}i:120505;a:1:{i:0;i:952;}i:120506;a:1:{i:0;i:963;}i:120507;a:1:{i:0;i:964;}i:120508;a:1:{i:0;i:965;}i:120509;a:1:{i:0;i:966;}i:120510;a:1:{i:0;i:967;}i:120511;a:1:{i:0;i:968;}i:120512;a:1:{i:0;i:969;}i:120531;a:1:{i:0;i:963;}i:120546;a:1:{i:0;i:945;}i:120547;a:1:{i:0;i:946;}i:120548;a:1:{i:0;i:947;}i:120549;a:1:{i:0;i:948;}i:120550;a:1:{i:0;i:949;}i:120551;a:1:{i:0;i:950;}i:120552;a:1:{i:0;i:951;}i:120553;a:1:{i:0;i:952;}i:120554;a:1:{i:0;i:953;}i:120555;a:1:{i:0;i:954;}i:120556;a:1:{i:0;i:955;}i:120557;a:1:{i:0;i:956;}i:120558;a:1:{i:0;i:957;}i:120559;a:1:{i:0;i:958;}i:120560;a:1:{i:0;i:959;}i:120561;a:1:{i:0;i:960;}i:120562;a:1:{i:0;i:961;}i:120563;a:1:{i:0;i:952;}i:120564;a:1:{i:0;i:963;}i:120565;a:1:{i:0;i:964;}i:120566;a:1:{i:0;i:965;}i:120567;a:1:{i:0;i:966;}i:120568;a:1:{i:0;i:967;}i:120569;a:1:{i:0;i:968;}i:120570;a:1:{i:0;i:969;}i:120589;a:1:{i:0;i:963;}i:120604;a:1:{i:0;i:945;}i:120605;a:1:{i:0;i:946;}i:120606;a:1:{i:0;i:947;}i:120607;a:1:{i:0;i:948;}i:120608;a:1:{i:0;i:949;}i:120609;a:1:{i:0;i:950;}i:120610;a:1:{i:0;i:951;}i:120611;a:1:{i:0;i:952;}i:120612;a:1:{i:0;i:953;}i:120613;a:1:{i:0;i:954;}i:120614;a:1:{i:0;i:955;}i:120615;a:1:{i:0;i:956;}i:120616;a:1:{i:0;i:957;}i:120617;a:1:{i:0;i:958;}i:120618;a:1:{i:0;i:959;}i:120619;a:1:{i:0;i:960;}i:120620;a:1:{i:0;i:961;}i:120621;a:1:{i:0;i:952;}i:120622;a:1:{i:0;i:963;}i:120623;a:1:{i:0;i:964;}i:120624;a:1:{i:0;i:965;}i:120625;a:1:{i:0;i:966;}i:120626;a:1:{i:0;i:967;}i:120627;a:1:{i:0;i:968;}i:120628;a:1:{i:0;i:969;}i:120647;a:1:{i:0;i:963;}i:120662;a:1:{i:0;i:945;}i:120663;a:1:{i:0;i:946;}i:120664;a:1:{i:0;i:947;}i:120665;a:1:{i:0;i:948;}i:120666;a:1:{i:0;i:949;}i:120667;a:1:{i:0;i:950;}i:120668;a:1:{i:0;i:951;}i:120669;a:1:{i:0;i:952;}i:120670;a:1:{i:0;i:953;}i:120671;a:1:{i:0;i:954;}i:120672;a:1:{i:0;i:955;}i:120673;a:1:{i:0;i:956;}i:120674;a:1:{i:0;i:957;}i:120675;a:1:{i:0;i:958;}i:120676;a:1:{i:0;i:959;}i:120677;a:1:{i:0;i:960;}i:120678;a:1:{i:0;i:961;}i:120679;a:1:{i:0;i:952;}i:120680;a:1:{i:0;i:963;}i:120681;a:1:{i:0;i:964;}i:120682;a:1:{i:0;i:965;}i:120683;a:1:{i:0;i:966;}i:120684;a:1:{i:0;i:967;}i:120685;a:1:{i:0;i:968;}i:120686;a:1:{i:0;i:969;}i:120705;a:1:{i:0;i:963;}i:120720;a:1:{i:0;i:945;}i:120721;a:1:{i:0;i:946;}i:120722;a:1:{i:0;i:947;}i:120723;a:1:{i:0;i:948;}i:120724;a:1:{i:0;i:949;}i:120725;a:1:{i:0;i:950;}i:120726;a:1:{i:0;i:951;}i:120727;a:1:{i:0;i:952;}i:120728;a:1:{i:0;i:953;}i:120729;a:1:{i:0;i:954;}i:120730;a:1:{i:0;i:955;}i:120731;a:1:{i:0;i:956;}i:120732;a:1:{i:0;i:957;}i:120733;a:1:{i:0;i:958;}i:120734;a:1:{i:0;i:959;}i:120735;a:1:{i:0;i:960;}i:120736;a:1:{i:0;i:961;}i:120737;a:1:{i:0;i:952;}i:120738;a:1:{i:0;i:963;}i:120739;a:1:{i:0;i:964;}i:120740;a:1:{i:0;i:965;}i:120741;a:1:{i:0;i:966;}i:120742;a:1:{i:0;i:967;}i:120743;a:1:{i:0;i:968;}i:120744;a:1:{i:0;i:969;}i:120763;a:1:{i:0;i:963;}i:1017;a:1:{i:0;i:963;}i:7468;a:1:{i:0;i:97;}i:7469;a:1:{i:0;i:230;}i:7470;a:1:{i:0;i:98;}i:7472;a:1:{i:0;i:100;}i:7473;a:1:{i:0;i:101;}i:7474;a:1:{i:0;i:477;}i:7475;a:1:{i:0;i:103;}i:7476;a:1:{i:0;i:104;}i:7477;a:1:{i:0;i:105;}i:7478;a:1:{i:0;i:106;}i:7479;a:1:{i:0;i:107;}i:7480;a:1:{i:0;i:108;}i:7481;a:1:{i:0;i:109;}i:7482;a:1:{i:0;i:110;}i:7484;a:1:{i:0;i:111;}i:7485;a:1:{i:0;i:547;}i:7486;a:1:{i:0;i:112;}i:7487;a:1:{i:0;i:114;}i:7488;a:1:{i:0;i:116;}i:7489;a:1:{i:0;i:117;}i:7490;a:1:{i:0;i:119;}i:8507;a:3:{i:0;i:102;i:1;i:97;i:2;i:120;}i:12880;a:3:{i:0;i:112;i:1;i:116;i:2;i:101;}i:13004;a:2:{i:0;i:104;i:1;i:103;}i:13006;a:2:{i:0;i:101;i:1;i:118;}i:13007;a:3:{i:0;i:108;i:1;i:116;i:2;i:100;}i:13178;a:2:{i:0;i:105;i:1;i:117;}i:13278;a:3:{i:0;i:118;i:1;i:8725;i:2;i:109;}i:13279;a:3:{i:0;i:97;i:1;i:8725;i:2;i:109;}}s:12:"norm_combcls";a:341:{i:820;i:1;i:821;i:1;i:822;i:1;i:823;i:1;i:824;i:1;i:2364;i:7;i:2492;i:7;i:2620;i:7;i:2748;i:7;i:2876;i:7;i:3260;i:7;i:4151;i:7;i:12441;i:8;i:12442;i:8;i:2381;i:9;i:2509;i:9;i:2637;i:9;i:2765;i:9;i:2893;i:9;i:3021;i:9;i:3149;i:9;i:3277;i:9;i:3405;i:9;i:3530;i:9;i:3642;i:9;i:3972;i:9;i:4153;i:9;i:5908;i:9;i:5940;i:9;i:6098;i:9;i:1456;i:10;i:1457;i:11;i:1458;i:12;i:1459;i:13;i:1460;i:14;i:1461;i:15;i:1462;i:16;i:1463;i:17;i:1464;i:18;i:1465;i:19;i:1467;i:20;i:1468;i:21;i:1469;i:22;i:1471;i:23;i:1473;i:24;i:1474;i:25;i:64286;i:26;i:1611;i:27;i:1612;i:28;i:1613;i:29;i:1614;i:30;i:1615;i:31;i:1616;i:32;i:1617;i:33;i:1618;i:34;i:1648;i:35;i:1809;i:36;i:3157;i:84;i:3158;i:91;i:3640;i:103;i:3641;i:103;i:3656;i:107;i:3657;i:107;i:3658;i:107;i:3659;i:107;i:3768;i:118;i:3769;i:118;i:3784;i:122;i:3785;i:122;i:3786;i:122;i:3787;i:122;i:3953;i:129;i:3954;i:130;i:3962;i:130;i:3963;i:130;i:3964;i:130;i:3965;i:130;i:3968;i:130;i:3956;i:132;i:801;i:202;i:802;i:202;i:807;i:202;i:808;i:202;i:795;i:216;i:3897;i:216;i:119141;i:216;i:119142;i:216;i:119150;i:216;i:119151;i:216;i:119152;i:216;i:119153;i:216;i:119154;i:216;i:12330;i:218;i:790;i:220;i:791;i:220;i:792;i:220;i:793;i:220;i:796;i:220;i:797;i:220;i:798;i:220;i:799;i:220;i:800;i:220;i:803;i:220;i:804;i:220;i:805;i:220;i:806;i:220;i:809;i:220;i:810;i:220;i:811;i:220;i:812;i:220;i:813;i:220;i:814;i:220;i:815;i:220;i:816;i:220;i:817;i:220;i:818;i:220;i:819;i:220;i:825;i:220;i:826;i:220;i:827;i:220;i:828;i:220;i:839;i:220;i:840;i:220;i:841;i:220;i:845;i:220;i:846;i:220;i:851;i:220;i:852;i:220;i:853;i:220;i:854;i:220;i:1425;i:220;i:1430;i:220;i:1435;i:220;i:1443;i:220;i:1444;i:220;i:1445;i:220;i:1446;i:220;i:1447;i:220;i:1450;i:220;i:1621;i:220;i:1622;i:220;i:1763;i:220;i:1770;i:220;i:1773;i:220;i:1841;i:220;i:1844;i:220;i:1847;i:220;i:1848;i:220;i:1849;i:220;i:1851;i:220;i:1852;i:220;i:1854;i:220;i:1858;i:220;i:1860;i:220;i:1862;i:220;i:1864;i:220;i:2386;i:220;i:3864;i:220;i:3865;i:220;i:3893;i:220;i:3895;i:220;i:4038;i:220;i:6459;i:220;i:8424;i:220;i:119163;i:220;i:119164;i:220;i:119165;i:220;i:119166;i:220;i:119167;i:220;i:119168;i:220;i:119169;i:220;i:119170;i:220;i:119178;i:220;i:119179;i:220;i:1434;i:222;i:1453;i:222;i:6441;i:222;i:12333;i:222;i:12334;i:224;i:12335;i:224;i:119149;i:226;i:1454;i:228;i:6313;i:228;i:12331;i:228;i:768;i:230;i:769;i:230;i:770;i:230;i:771;i:230;i:772;i:230;i:773;i:230;i:774;i:230;i:775;i:230;i:776;i:230;i:777;i:230;i:778;i:230;i:779;i:230;i:780;i:230;i:781;i:230;i:782;i:230;i:783;i:230;i:784;i:230;i:785;i:230;i:786;i:230;i:787;i:230;i:788;i:230;i:829;i:230;i:830;i:230;i:831;i:230;i:832;i:230;i:833;i:230;i:834;i:230;i:835;i:230;i:836;i:230;i:838;i:230;i:842;i:230;i:843;i:230;i:844;i:230;i:848;i:230;i:849;i:230;i:850;i:230;i:855;i:230;i:867;i:230;i:868;i:230;i:869;i:230;i:870;i:230;i:871;i:230;i:872;i:230;i:873;i:230;i:874;i:230;i:875;i:230;i:876;i:230;i:877;i:230;i:878;i:230;i:879;i:230;i:1155;i:230;i:1156;i:230;i:1157;i:230;i:1158;i:230;i:1426;i:230;i:1427;i:230;i:1428;i:230;i:1429;i:230;i:1431;i:230;i:1432;i:230;i:1433;i:230;i:1436;i:230;i:1437;i:230;i:1438;i:230;i:1439;i:230;i:1440;i:230;i:1441;i:230;i:1448;i:230;i:1449;i:230;i:1451;i:230;i:1452;i:230;i:1455;i:230;i:1476;i:230;i:1552;i:230;i:1553;i:230;i:1554;i:230;i:1555;i:230;i:1556;i:230;i:1557;i:230;i:1619;i:230;i:1620;i:230;i:1623;i:230;i:1624;i:230;i:1750;i:230;i:1751;i:230;i:1752;i:230;i:1753;i:230;i:1754;i:230;i:1755;i:230;i:1756;i:230;i:1759;i:230;i:1760;i:230;i:1761;i:230;i:1762;i:230;i:1764;i:230;i:1767;i:230;i:1768;i:230;i:1771;i:230;i:1772;i:230;i:1840;i:230;i:1842;i:230;i:1843;i:230;i:1845;i:230;i:1846;i:230;i:1850;i:230;i:1853;i:230;i:1855;i:230;i:1856;i:230;i:1857;i:230;i:1859;i:230;i:1861;i:230;i:1863;i:230;i:1865;i:230;i:1866;i:230;i:2385;i:230;i:2387;i:230;i:2388;i:230;i:3970;i:230;i:3971;i:230;i:3974;i:230;i:3975;i:230;i:5901;i:230;i:6458;i:230;i:8400;i:230;i:8401;i:230;i:8404;i:230;i:8405;i:230;i:8406;i:230;i:8407;i:230;i:8411;i:230;i:8412;i:230;i:8417;i:230;i:8423;i:230;i:8425;i:230;i:65056;i:230;i:65057;i:230;i:65058;i:230;i:65059;i:230;i:119173;i:230;i:119174;i:230;i:119175;i:230;i:119177;i:230;i:119176;i:230;i:119210;i:230;i:119211;i:230;i:119212;i:230;i:119213;i:230;i:789;i:232;i:794;i:232;i:12332;i:232;i:863;i:233;i:866;i:233;i:861;i:234;i:862;i:234;i:864;i:234;i:865;i:234;i:837;i:240;}} \ No newline at end of file diff --git a/simplepie/simplepie.inc b/simplepie/simplepie.inc new file mode 100644 index 0000000000..9e4fa301bb --- /dev/null +++ b/simplepie/simplepie.inc @@ -0,0 +1,15023 @@ +<?php +/** + * SimplePie + * + * A PHP-Based RSS and Atom Feed Framework. + * Takes the hard work out of managing a complete RSS/Atom solution. + * + * Copyright (c) 2004-2009, Ryan Parman and Geoffrey Sneddon + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * * Neither the name of the SimplePie Team nor the names of its contributors may be used + * to endorse or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS + * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * @package SimplePie + * @version 1.2.1-dev + * @copyright 2004-2009 Ryan Parman, Geoffrey Sneddon + * @author Ryan Parman + * @author Geoffrey Sneddon + * @link http://simplepie.org/ SimplePie + * @link http://simplepie.org/support/ Please submit all bug reports and feature requests to the SimplePie forums + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @todo phpDoc comments + */ + +/** + * SimplePie Name + */ +define('SIMPLEPIE_NAME', 'SimplePie'); + +/** + * SimplePie Version + */ +define('SIMPLEPIE_VERSION', '1.2.1-dev'); + +/** + * SimplePie Build + * @todo Hardcode for release (there's no need to have to call SimplePie_Misc::parse_date() only every load of simplepie.inc) + */ +define('SIMPLEPIE_BUILD', gmdate('YmdHis', SimplePie_Misc::parse_date(substr('$Date$', 7, 25)) ? SimplePie_Misc::parse_date(substr('$Date$', 7, 25)) : filemtime(__FILE__))); + +/** + * SimplePie Website URL + */ +define('SIMPLEPIE_URL', 'http://simplepie.org'); + +/** + * SimplePie Useragent + * @see SimplePie::set_useragent() + */ +define('SIMPLEPIE_USERAGENT', SIMPLEPIE_NAME . '/' . SIMPLEPIE_VERSION . ' (Feed Parser; ' . SIMPLEPIE_URL . '; Allow like Gecko) Build/' . SIMPLEPIE_BUILD); + +/** + * SimplePie Linkback + */ +define('SIMPLEPIE_LINKBACK', '<a href="' . SIMPLEPIE_URL . '" title="' . SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . '">' . SIMPLEPIE_NAME . '</a>'); + +/** + * No Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_NONE', 0); + +/** + * Feed Link Element Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1); + +/** + * Local Feed Extension Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2); + +/** + * Local Feed Body Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4); + +/** + * Remote Feed Extension Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8); + +/** + * Remote Feed Body Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16); + +/** + * All Feed Autodiscovery + * @see SimplePie::set_autodiscovery_level() + */ +define('SIMPLEPIE_LOCATOR_ALL', 31); + +/** + * No known feed type + */ +define('SIMPLEPIE_TYPE_NONE', 0); + +/** + * RSS 0.90 + */ +define('SIMPLEPIE_TYPE_RSS_090', 1); + +/** + * RSS 0.91 (Netscape) + */ +define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2); + +/** + * RSS 0.91 (Userland) + */ +define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4); + +/** + * RSS 0.91 (both Netscape and Userland) + */ +define('SIMPLEPIE_TYPE_RSS_091', 6); + +/** + * RSS 0.92 + */ +define('SIMPLEPIE_TYPE_RSS_092', 8); + +/** + * RSS 0.93 + */ +define('SIMPLEPIE_TYPE_RSS_093', 16); + +/** + * RSS 0.94 + */ +define('SIMPLEPIE_TYPE_RSS_094', 32); + +/** + * RSS 1.0 + */ +define('SIMPLEPIE_TYPE_RSS_10', 64); + +/** + * RSS 2.0 + */ +define('SIMPLEPIE_TYPE_RSS_20', 128); + +/** + * RDF-based RSS + */ +define('SIMPLEPIE_TYPE_RSS_RDF', 65); + +/** + * Non-RDF-based RSS (truly intended as syndication format) + */ +define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190); + +/** + * All RSS + */ +define('SIMPLEPIE_TYPE_RSS_ALL', 255); + +/** + * Atom 0.3 + */ +define('SIMPLEPIE_TYPE_ATOM_03', 256); + +/** + * Atom 1.0 + */ +define('SIMPLEPIE_TYPE_ATOM_10', 512); + +/** + * All Atom + */ +define('SIMPLEPIE_TYPE_ATOM_ALL', 768); + +/** + * All feed types + */ +define('SIMPLEPIE_TYPE_ALL', 1023); + +/** + * No construct + */ +define('SIMPLEPIE_CONSTRUCT_NONE', 0); + +/** + * Text construct + */ +define('SIMPLEPIE_CONSTRUCT_TEXT', 1); + +/** + * HTML construct + */ +define('SIMPLEPIE_CONSTRUCT_HTML', 2); + +/** + * XHTML construct + */ +define('SIMPLEPIE_CONSTRUCT_XHTML', 4); + +/** + * base64-encoded construct + */ +define('SIMPLEPIE_CONSTRUCT_BASE64', 8); + +/** + * IRI construct + */ +define('SIMPLEPIE_CONSTRUCT_IRI', 16); + +/** + * A construct that might be HTML + */ +define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32); + +/** + * All constructs + */ +define('SIMPLEPIE_CONSTRUCT_ALL', 63); + +/** + * Don't change case + */ +define('SIMPLEPIE_SAME_CASE', 1); + +/** + * Change to lowercase + */ +define('SIMPLEPIE_LOWERCASE', 2); + +/** + * Change to uppercase + */ +define('SIMPLEPIE_UPPERCASE', 4); + +/** + * PCRE for HTML attributes + */ +define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:[\x09\x0A\x0B\x0C\x0D\x20]+[^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?)*)[\x09\x0A\x0B\x0C\x0D\x20]*'); + +/** + * PCRE for XML attributes + */ +define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*'); + +/** + * XML Namespace + */ +define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace'); + +/** + * Atom 1.0 Namespace + */ +define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom'); + +/** + * Atom 0.3 Namespace + */ +define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#'); + +/** + * RDF Namespace + */ +define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'); + +/** + * RSS 0.90 Namespace + */ +define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/'); + +/** + * RSS 1.0 Namespace + */ +define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/'); + +/** + * RSS 1.0 Content Module Namespace + */ +define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/'); + +/** + * RSS 2.0 Namespace + * (Stupid, I know, but I'm certain it will confuse people less with support.) + */ +define('SIMPLEPIE_NAMESPACE_RSS_20', ''); + +/** + * DC 1.0 Namespace + */ +define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/'); + +/** + * DC 1.1 Namespace + */ +define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/'); + +/** + * W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace + */ +define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#'); + +/** + * GeoRSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss'); + +/** + * Media RSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/'); + +/** + * Wrong Media RSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss'); + +/** + * iTunes RSS Namespace + */ +define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd'); + +/** + * XHTML Namespace + */ +define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml'); + +/** + * IANA Link Relations Registry + */ +define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/'); + +/** + * Whether we're running on PHP5 + */ +define('SIMPLEPIE_PHP5', version_compare(PHP_VERSION, '5.0.0', '>=')); + +/** + * No file source + */ +define('SIMPLEPIE_FILE_SOURCE_NONE', 0); + +/** + * Remote file source + */ +define('SIMPLEPIE_FILE_SOURCE_REMOTE', 1); + +/** + * Local file source + */ +define('SIMPLEPIE_FILE_SOURCE_LOCAL', 2); + +/** + * fsockopen() file source + */ +define('SIMPLEPIE_FILE_SOURCE_FSOCKOPEN', 4); + +/** + * cURL file source + */ +define('SIMPLEPIE_FILE_SOURCE_CURL', 8); + +/** + * file_get_contents() file source + */ +define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16); + +/** + * SimplePie + * + * @package SimplePie + */ +class SimplePie +{ + /** + * @var array Raw data + * @access private + */ + var $data = array(); + + /** + * @var mixed Error string + * @access private + */ + var $error; + + /** + * @var object Instance of SimplePie_Sanitize (or other class) + * @see SimplePie::set_sanitize_class() + * @access private + */ + var $sanitize; + + /** + * @var string SimplePie Useragent + * @see SimplePie::set_useragent() + * @access private + */ + var $useragent = SIMPLEPIE_USERAGENT; + + /** + * @var string Feed URL + * @see SimplePie::set_feed_url() + * @access private + */ + var $feed_url; + + /** + * @var object Instance of SimplePie_File to use as a feed + * @see SimplePie::set_file() + * @access private + */ + var $file; + + /** + * @var string Raw feed data + * @see SimplePie::set_raw_data() + * @access private + */ + var $raw_data; + + /** + * @var int Timeout for fetching remote files + * @see SimplePie::set_timeout() + * @access private + */ + var $timeout = 10; + + /** + * @var bool Forces fsockopen() to be used for remote files instead + * of cURL, even if a new enough version is installed + * @see SimplePie::force_fsockopen() + * @access private + */ + var $force_fsockopen = false; + + /** + * @var bool Force the given data/URL to be treated as a feed no matter what + * it appears like + * @see SimplePie::force_feed() + * @access private + */ + var $force_feed = false; + + /** + * @var bool Enable/Disable XML dump + * @see SimplePie::enable_xml_dump() + * @access private + */ + var $xml_dump = false; + + /** + * @var bool Enable/Disable Caching + * @see SimplePie::enable_cache() + * @access private + */ + var $cache = true; + + /** + * @var int Cache duration (in seconds) + * @see SimplePie::set_cache_duration() + * @access private + */ + var $cache_duration = 3600; + + /** + * @var int Auto-discovery cache duration (in seconds) + * @see SimplePie::set_autodiscovery_cache_duration() + * @access private + */ + var $autodiscovery_cache_duration = 604800; // 7 Days. + + /** + * @var string Cache location (relative to executing script) + * @see SimplePie::set_cache_location() + * @access private + */ + var $cache_location = './cache'; + + /** + * @var string Function that creates the cache filename + * @see SimplePie::set_cache_name_function() + * @access private + */ + var $cache_name_function = 'md5'; + + /** + * @var bool Reorder feed by date descending + * @see SimplePie::enable_order_by_date() + * @access private + */ + var $order_by_date = true; + + /** + * @var mixed Force input encoding to be set to the follow value + * (false, or anything type-cast to false, disables this feature) + * @see SimplePie::set_input_encoding() + * @access private + */ + var $input_encoding = false; + + /** + * @var int Feed Autodiscovery Level + * @see SimplePie::set_autodiscovery_level() + * @access private + */ + var $autodiscovery = SIMPLEPIE_LOCATOR_ALL; + + /** + * @var string Class used for caching feeds + * @see SimplePie::set_cache_class() + * @access private + */ + var $cache_class = 'SimplePie_Cache'; + + /** + * @var string Class used for locating feeds + * @see SimplePie::set_locator_class() + * @access private + */ + var $locator_class = 'SimplePie_Locator'; + + /** + * @var string Class used for parsing feeds + * @see SimplePie::set_parser_class() + * @access private + */ + var $parser_class = 'SimplePie_Parser'; + + /** + * @var string Class used for fetching feeds + * @see SimplePie::set_file_class() + * @access private + */ + var $file_class = 'SimplePie_File'; + + /** + * @var string Class used for items + * @see SimplePie::set_item_class() + * @access private + */ + var $item_class = 'SimplePie_Item'; + + /** + * @var string Class used for authors + * @see SimplePie::set_author_class() + * @access private + */ + var $author_class = 'SimplePie_Author'; + + /** + * @var string Class used for categories + * @see SimplePie::set_category_class() + * @access private + */ + var $category_class = 'SimplePie_Category'; + + /** + * @var string Class used for enclosures + * @see SimplePie::set_enclosures_class() + * @access private + */ + var $enclosure_class = 'SimplePie_Enclosure'; + + /** + * @var string Class used for Media RSS <media:text> captions + * @see SimplePie::set_caption_class() + * @access private + */ + var $caption_class = 'SimplePie_Caption'; + + /** + * @var string Class used for Media RSS <media:copyright> + * @see SimplePie::set_copyright_class() + * @access private + */ + var $copyright_class = 'SimplePie_Copyright'; + + /** + * @var string Class used for Media RSS <media:credit> + * @see SimplePie::set_credit_class() + * @access private + */ + var $credit_class = 'SimplePie_Credit'; + + /** + * @var string Class used for Media RSS <media:rating> + * @see SimplePie::set_rating_class() + * @access private + */ + var $rating_class = 'SimplePie_Rating'; + + /** + * @var string Class used for Media RSS <media:restriction> + * @see SimplePie::set_restriction_class() + * @access private + */ + var $restriction_class = 'SimplePie_Restriction'; + + /** + * @var string Class used for content-type sniffing + * @see SimplePie::set_content_type_sniffer_class() + * @access private + */ + var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer'; + + /** + * @var string Class used for item sources. + * @see SimplePie::set_source_class() + * @access private + */ + var $source_class = 'SimplePie_Source'; + + /** + * @var mixed Set javascript query string parameter (false, or + * anything type-cast to false, disables this feature) + * @see SimplePie::set_javascript() + * @access private + */ + var $javascript = 'js'; + + /** + * @var int Maximum number of feeds to check with autodiscovery + * @see SimplePie::set_max_checked_feeds() + * @access private + */ + var $max_checked_feeds = 10; + + /** + * @var array All the feeds found during the autodiscovery process + * @see SimplePie::get_all_discovered_feeds() + * @access private + */ + var $all_discovered_feeds = array(); + + /** + * @var string Web-accessible path to the handler_favicon.php file. + * @see SimplePie::set_favicon_handler() + * @access private + */ + var $favicon_handler = ''; + + /** + * @var string Web-accessible path to the handler_image.php file. + * @see SimplePie::set_image_handler() + * @access private + */ + var $image_handler = ''; + + /** + * @var array Stores the URLs when multiple feeds are being initialized. + * @see SimplePie::set_feed_url() + * @access private + */ + var $multifeed_url = array(); + + /** + * @var array Stores SimplePie objects when multiple feeds initialized. + * @access private + */ + var $multifeed_objects = array(); + + /** + * @var array Stores the get_object_vars() array for use with multifeeds. + * @see SimplePie::set_feed_url() + * @access private + */ + var $config_settings = null; + + /** + * @var integer Stores the number of items to return per-feed with multifeeds. + * @see SimplePie::set_item_limit() + * @access private + */ + var $item_limit = 0; + + /** + * @var array Stores the default attributes to be stripped by strip_attributes(). + * @see SimplePie::strip_attributes() + * @access private + */ + var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'); + + /** + * @var array Stores the default tags to be stripped by strip_htmltags(). + * @see SimplePie::strip_htmltags() + * @access private + */ + var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); + + /** + * The SimplePie class contains feed level data and options + * + * There are two ways that you can create a new SimplePie object. The first + * is by passing a feed URL as a parameter to the SimplePie constructor + * (as well as optionally setting the cache location and cache expiry). This + * will initialise the whole feed with all of the default settings, and you + * can begin accessing methods and properties immediately. + * + * The second way is to create the SimplePie object with no parameters + * at all. This will enable you to set configuration options. After setting + * them, you must initialise the feed using $feed->init(). At that point the + * object's methods and properties will be available to you. This format is + * what is used throughout this documentation. + * + * @access public + * @since 1.0 Preview Release + * @param string $feed_url This is the URL you want to parse. + * @param string $cache_location This is where you want the cache to be stored. + * @param int $cache_duration This is the number of seconds that you want to store the cache file for. + */ + function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) + { + // Other objects, instances created here so we can set options on them + $this->sanitize =& new SimplePie_Sanitize; + + // Set options if they're passed to the constructor + if ($cache_location !== null) + { + $this->set_cache_location($cache_location); + } + + if ($cache_duration !== null) + { + $this->set_cache_duration($cache_duration); + } + + // Only init the script if we're passed a feed URL + if ($feed_url !== null) + { + $this->set_feed_url($feed_url); + $this->init(); + } + } + + /** + * Used for converting object to a string + */ + function __toString() + { + return md5(serialize($this->data)); + } + + /** + * Remove items that link back to this before destroying this object + */ + function __destruct() + { + if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode')) + { + if (!empty($this->data['items'])) + { + foreach ($this->data['items'] as $item) + { + $item->__destruct(); + } + unset($item, $this->data['items']); + } + if (!empty($this->data['ordered_items'])) + { + foreach ($this->data['ordered_items'] as $item) + { + $item->__destruct(); + } + unset($item, $this->data['ordered_items']); + } + } + } + + /** + * Force the given data/URL to be treated as a feed no matter what it + * appears like + * + * @access public + * @since 1.1 + * @param bool $enable Force the given data/URL to be treated as a feed + */ + function force_feed($enable = false) + { + $this->force_feed = (bool) $enable; + } + + /** + * This is the URL of the feed you want to parse. + * + * This allows you to enter the URL of the feed you want to parse, or the + * website you want to try to use auto-discovery on. This takes priority + * over any set raw data. + * + * You can set multiple feeds to mash together by passing an array instead + * of a string for the $url. Remember that with each additional feed comes + * additional processing and resources. + * + * @access public + * @since 1.0 Preview Release + * @param mixed $url This is the URL (or array of URLs) that you want to parse. + * @see SimplePie::set_raw_data() + */ + function set_feed_url($url) + { + if (is_array($url)) + { + $this->multifeed_url = array(); + foreach ($url as $value) + { + $this->multifeed_url[] = SimplePie_Misc::fix_protocol($value, 1); + } + } + else + { + $this->feed_url = SimplePie_Misc::fix_protocol($url, 1); + } + } + + /** + * Provides an instance of SimplePie_File to use as a feed + * + * @access public + * @param object &$file Instance of SimplePie_File (or subclass) + * @return bool True on success, false on failure + */ + function set_file(&$file) + { + if (is_a($file, 'SimplePie_File')) + { + $this->feed_url = $file->url; + $this->file =& $file; + return true; + } + return false; + } + + /** + * Allows you to use a string of RSS/Atom data instead of a remote feed. + * + * If you have a feed available as a string in PHP, you can tell SimplePie + * to parse that data string instead of a remote feed. Any set feed URL + * takes precedence. + * + * @access public + * @since 1.0 Beta 3 + * @param string $data RSS or Atom data as a string. + * @see SimplePie::set_feed_url() + */ + function set_raw_data($data) + { + $this->raw_data = $data; + } + + /** + * Allows you to override the default timeout for fetching remote feeds. + * + * This allows you to change the maximum time the feed's server to respond + * and send the feed back. + * + * @access public + * @since 1.0 Beta 3 + * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed. + */ + function set_timeout($timeout = 10) + { + $this->timeout = (int) $timeout; + } + + /** + * Forces SimplePie to use fsockopen() instead of the preferred cURL + * functions. + * + * @access public + * @since 1.0 Beta 3 + * @param bool $enable Force fsockopen() to be used + */ + function force_fsockopen($enable = false) + { + $this->force_fsockopen = (bool) $enable; + } + + /** + * Outputs the raw XML content of the feed, after it has gone through + * SimplePie's filters. + * + * Used only for debugging, this function will output the XML content as + * text/xml. When SimplePie reads in a feed, it does a bit of cleaning up + * before trying to parse it. Many parts of the feed are re-written in + * memory, and in the end, you have a parsable feed. XML dump shows you the + * actual XML that SimplePie tries to parse, which may or may not be very + * different from the original feed. + * + * @access public + * @since 1.0 Preview Release + * @param bool $enable Enable XML dump + */ + function enable_xml_dump($enable = false) + { + $this->xml_dump = (bool) $enable; + } + + /** + * Enables/disables caching in SimplePie. + * + * This option allows you to disable caching all-together in SimplePie. + * However, disabling the cache can lead to longer load times. + * + * @access public + * @since 1.0 Preview Release + * @param bool $enable Enable caching + */ + function enable_cache($enable = true) + { + $this->cache = (bool) $enable; + } + + /** + * Set the length of time (in seconds) that the contents of a feed + * will be cached. + * + * @access public + * @param int $seconds The feed content cache duration. + */ + function set_cache_duration($seconds = 3600) + { + $this->cache_duration = (int) $seconds; + } + + /** + * Set the length of time (in seconds) that the autodiscovered feed + * URL will be cached. + * + * @access public + * @param int $seconds The autodiscovered feed URL cache duration. + */ + function set_autodiscovery_cache_duration($seconds = 604800) + { + $this->autodiscovery_cache_duration = (int) $seconds; + } + + /** + * Set the file system location where the cached files should be stored. + * + * @access public + * @param string $location The file system location. + */ + function set_cache_location($location = './cache') + { + $this->cache_location = (string) $location; + } + + /** + * Determines whether feed items should be sorted into reverse chronological order. + * + * @access public + * @param bool $enable Sort as reverse chronological order. + */ + function enable_order_by_date($enable = true) + { + $this->order_by_date = (bool) $enable; + } + + /** + * Allows you to override the character encoding reported by the feed. + * + * @access public + * @param string $encoding Character encoding. + */ + function set_input_encoding($encoding = false) + { + if ($encoding) + { + $this->input_encoding = (string) $encoding; + } + else + { + $this->input_encoding = false; + } + } + + /** + * Set how much feed autodiscovery to do + * + * @access public + * @see SIMPLEPIE_LOCATOR_NONE + * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY + * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION + * @see SIMPLEPIE_LOCATOR_LOCAL_BODY + * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION + * @see SIMPLEPIE_LOCATOR_REMOTE_BODY + * @see SIMPLEPIE_LOCATOR_ALL + * @param int $level Feed Autodiscovery Level (level can be a + * combination of the above constants, see bitwise OR operator) + */ + function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL) + { + $this->autodiscovery = (int) $level; + } + + /** + * Allows you to change which class SimplePie uses for caching. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_cache_class($class = 'SimplePie_Cache') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Cache')) + { + $this->cache_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for auto-discovery. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_locator_class($class = 'SimplePie_Locator') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Locator')) + { + $this->locator_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for XML parsing. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_parser_class($class = 'SimplePie_Parser') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Parser')) + { + $this->parser_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for remote file fetching. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_file_class($class = 'SimplePie_File') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_File')) + { + $this->file_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for data sanitization. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_sanitize_class($class = 'SimplePie_Sanitize') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize')) + { + $this->sanitize =& new $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for handling feed items. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_item_class($class = 'SimplePie_Item') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Item')) + { + $this->item_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for handling author data. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_author_class($class = 'SimplePie_Author') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Author')) + { + $this->author_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for handling category data. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_category_class($class = 'SimplePie_Category') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Category')) + { + $this->category_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for feed enclosures. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_enclosure_class($class = 'SimplePie_Enclosure') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Enclosure')) + { + $this->enclosure_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:text> captions + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_caption_class($class = 'SimplePie_Caption') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Caption')) + { + $this->caption_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:copyright> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_copyright_class($class = 'SimplePie_Copyright') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Copyright')) + { + $this->copyright_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:credit> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_credit_class($class = 'SimplePie_Credit') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Credit')) + { + $this->credit_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:rating> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_rating_class($class = 'SimplePie_Rating') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Rating')) + { + $this->rating_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for <media:restriction> + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_restriction_class($class = 'SimplePie_Restriction') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Restriction')) + { + $this->restriction_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses for content-type sniffing. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Content_Type_Sniffer')) + { + $this->content_type_sniffer_class = $class; + return true; + } + return false; + } + + /** + * Allows you to change which class SimplePie uses item sources. + * Useful when you are overloading or extending SimplePie's default classes. + * + * @access public + * @param string $class Name of custom class. + * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation + * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation + */ + function set_source_class($class = 'SimplePie_Source') + { + if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Source')) + { + $this->source_class = $class; + return true; + } + return false; + } + + /** + * Allows you to override the default user agent string. + * + * @access public + * @param string $ua New user agent string. + */ + function set_useragent($ua = SIMPLEPIE_USERAGENT) + { + $this->useragent = (string) $ua; + } + + /** + * Set callback function to create cache filename with + * + * @access public + * @param mixed $function Callback function + */ + function set_cache_name_function($function = 'md5') + { + if (is_callable($function)) + { + $this->cache_name_function = $function; + } + } + + /** + * Set javascript query string parameter + * + * @access public + * @param mixed $get Javascript query string parameter + */ + function set_javascript($get = 'js') + { + if ($get) + { + $this->javascript = (string) $get; + } + else + { + $this->javascript = false; + } + } + + /** + * Set options to make SP as fast as possible. Forgoes a + * substantial amount of data sanitization in favor of speed. + * + * @access public + * @param bool $set Whether to set them or not + */ + function set_stupidly_fast($set = false) + { + if ($set) + { + $this->enable_order_by_date(false); + $this->remove_div(false); + $this->strip_comments(false); + $this->strip_htmltags(false); + $this->strip_attributes(false); + $this->set_image_handler(false); + } + } + + /** + * Set maximum number of feeds to check with autodiscovery + * + * @access public + * @param int $max Maximum number of feeds to check + */ + function set_max_checked_feeds($max = 10) + { + $this->max_checked_feeds = (int) $max; + } + + function remove_div($enable = true) + { + $this->sanitize->remove_div($enable); + } + + function strip_htmltags($tags = '', $encode = null) + { + if ($tags === '') + { + $tags = $this->strip_htmltags; + } + $this->sanitize->strip_htmltags($tags); + if ($encode !== null) + { + $this->sanitize->encode_instead_of_strip($tags); + } + } + + function encode_instead_of_strip($enable = true) + { + $this->sanitize->encode_instead_of_strip($enable); + } + + function strip_attributes($attribs = '') + { + if ($attribs === '') + { + $attribs = $this->strip_attributes; + } + $this->sanitize->strip_attributes($attribs); + } + + function set_output_encoding($encoding = 'UTF-8') + { + $this->sanitize->set_output_encoding($encoding); + } + + function strip_comments($strip = false) + { + $this->sanitize->strip_comments($strip); + } + + /** + * Set element/attribute key/value pairs of HTML attributes + * containing URLs that need to be resolved relative to the feed + * + * @access public + * @since 1.0 + * @param array $element_attribute Element/attribute key/value pairs + */ + function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite')) + { + $this->sanitize->set_url_replacements($element_attribute); + } + + /** + * Set the handler to enable the display of cached favicons. + * + * @access public + * @param str $page Web-accessible path to the handler_favicon.php file. + * @param str $qs The query string that the value should be passed to. + */ + function set_favicon_handler($page = false, $qs = 'i') + { + if ($page !== false) + { + $this->favicon_handler = $page . '?' . $qs . '='; + } + else + { + $this->favicon_handler = ''; + } + } + + /** + * Set the handler to enable the display of cached images. + * + * @access public + * @param str $page Web-accessible path to the handler_image.php file. + * @param str $qs The query string that the value should be passed to. + */ + function set_image_handler($page = false, $qs = 'i') + { + if ($page !== false) + { + $this->sanitize->set_image_handler($page . '?' . $qs . '='); + } + else + { + $this->image_handler = ''; + } + } + + /** + * Set the limit for items returned per-feed with multifeeds. + * + * @access public + * @param integer $limit The maximum number of items to return. + */ + function set_item_limit($limit = 0) + { + $this->item_limit = (int) $limit; + } + + function init() + { + // Check absolute bare minimum requirements. + if ((function_exists('version_compare') && version_compare(PHP_VERSION, '4.3.0', '<')) || !extension_loaded('xml') || !extension_loaded('pcre')) + { + return false; + } + // Then check the xml extension is sane (i.e., libxml 2.7.x issue on PHP < 5.2.9 and libxml 2.7.0 to 2.7.2 on any version) if we don't have xmlreader. + elseif (!extension_loaded('xmlreader')) + { + static $xml_is_sane = null; + if ($xml_is_sane === null) + { + $parser_check = xml_parser_create(); + xml_parse_into_struct($parser_check, '<foo>&</foo>', $values); + xml_parser_free($parser_check); + $xml_is_sane = isset($values[0]['value']); + } + if (!$xml_is_sane) + { + return false; + } + } + + if (isset($_GET[$this->javascript])) + { + SimplePie_Misc::output_javascript(); + exit; + } + + // Pass whatever was set with config options over to the sanitizer. + $this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->cache_class); + $this->sanitize->pass_file_data($this->file_class, $this->timeout, $this->useragent, $this->force_fsockopen); + + if ($this->feed_url !== null || $this->raw_data !== null) + { + $this->data = array(); + $this->multifeed_objects = array(); + $cache = false; + + if ($this->feed_url !== null) + { + $parsed_feed_url = SimplePie_Misc::parse_url($this->feed_url); + // Decide whether to enable caching + if ($this->cache && $parsed_feed_url['scheme'] !== '') + { + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + } + // If it's enabled and we don't want an XML dump, use the cache + if ($cache && !$this->xml_dump) + { + // Load the Cache + $this->data = $cache->load(); + if (!empty($this->data)) + { + // If the cache is for an outdated build of SimplePie + if (!isset($this->data['build']) || $this->data['build'] !== SIMPLEPIE_BUILD) + { + $cache->unlink(); + $this->data = array(); + } + // If we've hit a collision just rerun it with caching disabled + elseif (isset($this->data['url']) && $this->data['url'] !== $this->feed_url) + { + $cache = false; + $this->data = array(); + } + // If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL. + elseif (isset($this->data['feed_url'])) + { + // If the autodiscovery cache is still valid use it. + if ($cache->mtime() + $this->autodiscovery_cache_duration > time()) + { + // Do not need to do feed autodiscovery yet. + if ($this->data['feed_url'] === $this->data['url']) + { + $cache->unlink(); + $this->data = array(); + } + else + { + $this->set_feed_url($this->data['feed_url']); + return $this->init(); + } + } + } + // Check if the cache has been updated + elseif ($cache->mtime() + $this->cache_duration < time()) + { + // If we have last-modified and/or etag set + if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag'])) + { + $headers = array(); + if (isset($this->data['headers']['last-modified'])) + { + $headers['if-modified-since'] = $this->data['headers']['last-modified']; + } + if (isset($this->data['headers']['etag'])) + { + $headers['if-none-match'] = '"' . $this->data['headers']['etag'] . '"'; + } + $file =& new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); + if ($file->success) + { + if ($file->status_code === 304) + { + $cache->touch(); + return true; + } + else + { + $headers = $file->headers; + } + } + else + { + unset($file); + } + } + } + // If the cache is still valid, just return true + else + { + return true; + } + } + // If the cache is empty, delete it + else + { + $cache->unlink(); + $this->data = array(); + } + } + // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it. + if (!isset($file)) + { + if (is_a($this->file, 'SimplePie_File') && $this->file->url === $this->feed_url) + { + $file =& $this->file; + } + else + { + $file =& new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); + } + } + // If the file connection has an error, set SimplePie::error to that and quit + if (!$file->success && !($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300))) + { + $this->error = $file->error; + if (!empty($this->data)) + { + return true; + } + else + { + return false; + } + } + + if (!$this->force_feed) + { + // Check if the supplied URL is a feed, if it isn't, look for it. + $locate =& new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds, $this->content_type_sniffer_class); + if (!$locate->is_feed($file)) + { + // We need to unset this so that if SimplePie::set_file() has been called that object is untouched + unset($file); + if ($file = $locate->find($this->autodiscovery, $this->all_discovered_feeds)) + { + if ($cache) + { + $this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD); + if (!$cache->save($this)) + { + trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING); + } + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); + } + $this->feed_url = $file->url; + } + else + { + $this->error = "A feed could not be found at $this->feed_url. A feed with an invalid mime type may fall victim to this error, or " . SIMPLEPIE_NAME . " was unable to auto-discover it.. Use force_feed() if you are certain this URL is a real feed."; + SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); + return false; + } + } + $locate = null; + } + + $headers = $file->headers; + $data = $file->body; + $sniffer =& new $this->content_type_sniffer_class($file); + $sniffed = $sniffer->get_type(); + } + else + { + $data = $this->raw_data; + } + + // Set up array of possible encodings + $encodings = array(); + + // First check to see if input has been overridden. + if ($this->input_encoding !== false) + { + $encodings[] = $this->input_encoding; + } + + $application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity'); + $text_types = array('text/xml', 'text/xml-external-parsed-entity'); + + // RFC 3023 (only applies to sniffed content) + if (isset($sniffed)) + { + if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml') + { + if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset)) + { + $encodings[] = strtoupper($charset[1]); + } + $encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data)); + $encodings[] = 'UTF-8'; + } + elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml') + { + if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset)) + { + $encodings[] = $charset[1]; + } + $encodings[] = 'US-ASCII'; + } + // Text MIME-type default + elseif (substr($sniffed, 0, 5) === 'text/') + { + $encodings[] = 'US-ASCII'; + } + } + + // Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1 + $encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data)); + $encodings[] = 'UTF-8'; + $encodings[] = 'ISO-8859-1'; + + // There's no point in trying an encoding twice + $encodings = array_unique($encodings); + + // If we want the XML, just output that with the most likely encoding and quit + if ($this->xml_dump) + { + header('Content-type: text/xml; charset=' . $encodings[0]); + echo $data; + exit; + } + + // Loop through each possible encoding, till we return something, or run out of possibilities + foreach ($encodings as $encoding) + { + // Change the encoding to UTF-8 (as we always use UTF-8 internally) + if ($utf8_data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8')) + { + // Create new parser + $parser =& new $this->parser_class(); + + // If it's parsed fine + if ($parser->parse($utf8_data, 'UTF-8')) + { + $this->data = $parser->get_data(); + if ($this->get_type() & ~SIMPLEPIE_TYPE_NONE) + { + if (isset($headers)) + { + $this->data['headers'] = $headers; + } + $this->data['build'] = SIMPLEPIE_BUILD; + + // Cache the file if caching is enabled + if ($cache && !$cache->save($this)) + { + trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING); + } + return true; + } + else + { + $this->error = "A feed could not be found at $this->feed_url. This does not appear to be a valid RSS or Atom feed."; + SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); + return false; + } + } + } + } + if (isset($parser)) + { + // We have an error, just set SimplePie_Misc::error to it and quit + $this->error = sprintf('This XML document is invalid, likely due to invalid characters. XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column()); + } + else + { + $this->error = 'The data could not be converted to UTF-8. You MUST have either the iconv or mbstring extension installed. Upgrading to PHP 5.x (which includes iconv) is highly recommended.'; + } + SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__); + return false; + } + elseif (!empty($this->multifeed_url)) + { + $i = 0; + $success = 0; + $this->multifeed_objects = array(); + foreach ($this->multifeed_url as $url) + { + if (SIMPLEPIE_PHP5) + { + // This keyword needs to defy coding standards for PHP4 compatibility + $this->multifeed_objects[$i] = clone($this); + } + else + { + $this->multifeed_objects[$i] = $this; + } + $this->multifeed_objects[$i]->set_feed_url($url); + $success |= $this->multifeed_objects[$i]->init(); + $i++; + } + return (bool) $success; + } + else + { + return false; + } + } + + /** + * Return the error message for the occured error + * + * @access public + * @return string Error message + */ + function error() + { + return $this->error; + } + + function get_encoding() + { + return $this->sanitize->output_encoding; + } + + function handle_content_type($mime = 'text/html') + { + if (!headers_sent()) + { + $header = "Content-type: $mime;"; + if ($this->get_encoding()) + { + $header .= ' charset=' . $this->get_encoding(); + } + else + { + $header .= ' charset=UTF-8'; + } + header($header); + } + } + + function get_type() + { + if (!isset($this->data['type'])) + { + $this->data['type'] = SIMPLEPIE_TYPE_ALL; + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_10; + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_03; + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'])) + { + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['channel']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['image']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['textinput'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_10; + } + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['channel']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['image']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']) + || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['textinput'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_090; + } + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'])) + { + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_ALL; + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['attribs']['']['version'])) + { + switch (trim($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['attribs']['']['version'])) + { + case '0.91': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091; + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['skiphours']['hour'][0]['data'])) + { + switch (trim($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['skiphours']['hour'][0]['data'])) + { + case '0': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_NETSCAPE; + break; + + case '24': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_USERLAND; + break; + } + } + break; + + case '0.92': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_092; + break; + + case '0.93': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_093; + break; + + case '0.94': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_094; + break; + + case '2.0': + $this->data['type'] &= SIMPLEPIE_TYPE_RSS_20; + break; + } + } + } + else + { + $this->data['type'] = SIMPLEPIE_TYPE_NONE; + } + } + return $this->data['type']; + } + + /** + * Returns the URL for the favicon of the feed's website. + * + * @todo Cache atom:icon + * @access public + * @since 1.0 + */ + function get_favicon() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif (($url = $this->get_link()) !== null && preg_match('/^http(s)?:\/\//i', $url)) + { + $favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $url); + + if ($this->cache && $this->favicon_handler) + { + $favicon_filename = call_user_func($this->cache_name_function, $favicon); + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $favicon_filename, 'spi'); + + if ($cache->load()) + { + return $this->sanitize($this->favicon_handler . $favicon_filename, SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + $file =& new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); + + if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)) && strlen($file->body) > 0) + { + $sniffer =& new $this->content_type_sniffer_class($file); + if (substr($sniffer->get_type(), 0, 6) === 'image/') + { + if ($cache->save(array('headers' => $file->headers, 'body' => $file->body))) + { + return $this->sanitize($this->favicon_handler . $favicon_filename, SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + trigger_error("$cache->name is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING); + return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI); + } + } + // not an image + else + { + return false; + } + } + } + } + else + { + return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI); + } + } + return false; + } + + /** + * @todo If we have a perm redirect we should return the new URL + * @todo When we make the above change, let's support <itunes:new-feed-url> as well + * @todo Also, |atom:link|@rel=self + */ + function subscribe_url() + { + if ($this->feed_url !== null) + { + return $this->sanitize($this->feed_url, SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + function subscribe_feed() + { + if ($this->feed_url !== null) + { + return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + function subscribe_outlook() + { + if ($this->feed_url !== null) + { + return $this->sanitize('outlook' . SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + function subscribe_podcast() + { + if ($this->feed_url !== null) + { + return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 3), SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + function subscribe_itunes() + { + if ($this->feed_url !== null) + { + return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 4), SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + /** + * Creates the subscribe_* methods' return data + * + * @access private + * @param string $feed_url String to prefix to the feed URL + * @param string $site_url String to prefix to the site URL (and + * suffix to the feed URL) + * @return mixed URL if feed exists, false otherwise + */ + function subscribe_service($feed_url, $site_url = null) + { + if ($this->subscribe_url()) + { + $return = $feed_url . rawurlencode($this->feed_url); + if ($site_url !== null && $this->get_link() !== null) + { + $return .= $site_url . rawurlencode($this->get_link()); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + function subscribe_aol() + { + return $this->subscribe_service('http://feeds.my.aol.com/add.jsp?url='); + } + + function subscribe_bloglines() + { + return $this->subscribe_service('http://www.bloglines.com/sub/'); + } + + function subscribe_eskobo() + { + return $this->subscribe_service('http://www.eskobo.com/?AddToMyPage='); + } + + function subscribe_feedfeeds() + { + return $this->subscribe_service('http://www.feedfeeds.com/add?feed='); + } + + function subscribe_feedster() + { + return $this->subscribe_service('http://www.feedster.com/myfeedster.php?action=addrss&confirm=no&rssurl='); + } + + function subscribe_google() + { + return $this->subscribe_service('http://fusion.google.com/add?feedurl='); + } + + function subscribe_gritwire() + { + return $this->subscribe_service('http://my.gritwire.com/feeds/addExternalFeed.aspx?FeedUrl='); + } + + function subscribe_msn() + { + return $this->subscribe_service('http://my.msn.com/addtomymsn.armx?id=rss&ut=', '&ru='); + } + + function subscribe_netvibes() + { + return $this->subscribe_service('http://www.netvibes.com/subscribe.php?url='); + } + + function subscribe_newsburst() + { + return $this->subscribe_service('http://www.newsburst.com/Source/?add='); + } + + function subscribe_newsgator() + { + return $this->subscribe_service('http://www.newsgator.com/ngs/subscriber/subext.aspx?url='); + } + + function subscribe_odeo() + { + return $this->subscribe_service('http://www.odeo.com/listen/subscribe?feed='); + } + + function subscribe_podnova() + { + return $this->subscribe_service('http://www.podnova.com/index_your_podcasts.srf?action=add&url='); + } + + function subscribe_rojo() + { + return $this->subscribe_service('http://www.rojo.com/add-subscription?resource='); + } + + function subscribe_yahoo() + { + return $this->subscribe_service('http://add.my.yahoo.com/rss?url='); + } + + function get_feed_tags($namespace, $tag) + { + $type = $this->get_type(); + if ($type & SIMPLEPIE_TYPE_ATOM_10) + { + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag])) + { + return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag]; + } + } + if ($type & SIMPLEPIE_TYPE_ATOM_03) + { + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag])) + { + return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag]; + } + } + if ($type & SIMPLEPIE_TYPE_RSS_RDF) + { + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag])) + { + return $this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag]; + } + } + if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION) + { + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][$namespace][$tag])) + { + return $this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][$namespace][$tag]; + } + } + return null; + } + + function get_channel_tags($namespace, $tag) + { + $type = $this->get_type(); + if ($type & SIMPLEPIE_TYPE_ATOM_ALL) + { + if ($return = $this->get_feed_tags($namespace, $tag)) + { + return $return; + } + } + if ($type & SIMPLEPIE_TYPE_RSS_10) + { + if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'channel')) + { + if (isset($channel[0]['child'][$namespace][$tag])) + { + return $channel[0]['child'][$namespace][$tag]; + } + } + } + if ($type & SIMPLEPIE_TYPE_RSS_090) + { + if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'channel')) + { + if (isset($channel[0]['child'][$namespace][$tag])) + { + return $channel[0]['child'][$namespace][$tag]; + } + } + } + if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION) + { + if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'channel')) + { + if (isset($channel[0]['child'][$namespace][$tag])) + { + return $channel[0]['child'][$namespace][$tag]; + } + } + } + return null; + } + + function get_image_tags($namespace, $tag) + { + $type = $this->get_type(); + if ($type & SIMPLEPIE_TYPE_RSS_10) + { + if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'image')) + { + if (isset($image[0]['child'][$namespace][$tag])) + { + return $image[0]['child'][$namespace][$tag]; + } + } + } + if ($type & SIMPLEPIE_TYPE_RSS_090) + { + if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'image')) + { + if (isset($image[0]['child'][$namespace][$tag])) + { + return $image[0]['child'][$namespace][$tag]; + } + } + } + if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION) + { + if ($image = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'image')) + { + if (isset($image[0]['child'][$namespace][$tag])) + { + return $image[0]['child'][$namespace][$tag]; + } + } + } + return null; + } + + function get_base($element = array()) + { + if (!($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION) && !empty($element['xml_base_explicit']) && isset($element['xml_base'])) + { + return $element['xml_base']; + } + elseif ($this->get_link() !== null) + { + return $this->get_link(); + } + else + { + return $this->subscribe_url(); + } + } + + function sanitize($data, $type, $base = '') + { + return $this->sanitize->sanitize($data, $type, $base); + } + + function get_title() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_category($key = 0) + { + $categories = $this->get_categories(); + if (isset($categories[$key])) + { + return $categories[$key]; + } + else + { + return null; + } + } + + function get_categories() + { + $categories = array(); + + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['attribs']['']['term'])) + { + $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->category_class($term, $scheme, $label); + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category) + { + // This is really the label, but keep this as the term also for BC. + // Label will also work on retrieving because that falls back to term. + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + if (isset($category['attribs']['']['domain'])) + { + $scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = null; + } + $categories[] =& new $this->category_class($term, $scheme, null); + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) + { + $categories[] =& new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) + { + $categories[] =& new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($categories)) + { + return SimplePie_Misc::array_unique($categories); + } + else + { + return null; + } + } + + function get_author($key = 0) + { + $authors = $this->get_authors(); + if (isset($authors[$key])) + { + return $authors[$key]; + } + else + { + return null; + } + } + + function get_authors() + { + $authors = array(); + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author) + { + $name = null; + $uri = null; + $email = null; + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) + { + $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) + { + $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); + } + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) + { + $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $uri !== null) + { + $authors[] =& new $this->author_class($name, $uri, $email); + } + } + if ($author = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author')) + { + $name = null; + $url = null; + $email = null; + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) + { + $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) + { + $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); + } + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) + { + $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $url !== null) + { + $authors[] =& new $this->author_class($name, $url, $email); + } + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author) + { + $authors[] =& new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author) + { + $authors[] =& new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author) + { + $authors[] =& new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($authors)) + { + return SimplePie_Misc::array_unique($authors); + } + else + { + return null; + } + } + + function get_contributor($key = 0) + { + $contributors = $this->get_contributors(); + if (isset($contributors[$key])) + { + return $contributors[$key]; + } + else + { + return null; + } + } + + function get_contributors() + { + $contributors = array(); + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor) + { + $name = null; + $uri = null; + $email = null; + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) + { + $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) + { + $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) + { + $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $uri !== null) + { + $contributors[] =& new $this->author_class($name, $uri, $email); + } + } + foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor) + { + $name = null; + $url = null; + $email = null; + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) + { + $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) + { + $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) + { + $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $url !== null) + { + $contributors[] =& new $this->author_class($name, $url, $email); + } + } + + if (!empty($contributors)) + { + return SimplePie_Misc::array_unique($contributors); + } + else + { + return null; + } + } + + function get_link($key = 0, $rel = 'alternate') + { + $links = $this->get_links($rel); + if (isset($links[$key])) + { + return $links[$key]; + } + else + { + return null; + } + } + + /** + * Added for parity between the parent-level and the item/entry-level. + */ + function get_permalink() + { + return $this->get_link(0); + } + + function get_links($rel = 'alternate') + { + if (!isset($this->data['links'])) + { + $this->data['links'] = array(); + if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link')) + { + foreach ($links as $link) + { + if (isset($link['attribs']['']['href'])) + { + $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; + $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + } + } + } + if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link')) + { + foreach ($links as $link) + { + if (isset($link['attribs']['']['href'])) + { + $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; + $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + + } + } + } + if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + + $keys = array_keys($this->data['links']); + foreach ($keys as $key) + { + if (SimplePie_Misc::is_isegment_nz_nc($key)) + { + if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) + { + $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); + $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; + } + else + { + $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; + } + } + elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) + { + $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; + } + $this->data['links'][$key] = array_unique($this->data['links'][$key]); + } + } + + if (isset($this->data['links'][$rel])) + { + return $this->data['links'][$rel]; + } + else + { + return null; + } + } + + function get_all_discovered_feeds() + { + return $this->all_discovered_feeds; + } + + function get_description() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + else + { + return null; + } + } + + function get_copyright() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_language() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'])) + { + return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'])) + { + return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'])) + { + return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($this->data['headers']['content-language'])) + { + return $this->sanitize($this->data['headers']['content-language'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_latitude() + { + + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat')) + { + return (float) $return[0]['data']; + } + elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match)) + { + return (float) $match[1]; + } + else + { + return null; + } + } + + function get_longitude() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long')) + { + return (float) $return[0]['data']; + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon')) + { + return (float) $return[0]['data']; + } + elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match)) + { + return (float) $match[2]; + } + else + { + return null; + } + } + + function get_image_title() + { + if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_image_url() + { + if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image')) + { + return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'url')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'url')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + else + { + return null; + } + } + + function get_image_link() + { + if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + else + { + return null; + } + } + + function get_image_width() + { + if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'width')) + { + return round($return[0]['data']); + } + elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url')) + { + return 88.0; + } + else + { + return null; + } + } + + function get_image_height() + { + if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'height')) + { + return round($return[0]['data']); + } + elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url')) + { + return 31.0; + } + else + { + return null; + } + } + + function get_item_quantity($max = 0) + { + $max = (int) $max; + $qty = count($this->get_items()); + if ($max === 0) + { + return $qty; + } + else + { + return ($qty > $max) ? $max : $qty; + } + } + + function get_item($key = 0) + { + $items = $this->get_items(); + if (isset($items[$key])) + { + return $items[$key]; + } + else + { + return null; + } + } + + function get_items($start = 0, $end = 0) + { + if (!isset($this->data['items'])) + { + if (!empty($this->multifeed_objects)) + { + $this->data['items'] = SimplePie::merge_items($this->multifeed_objects, $start, $end, $this->item_limit); + } + else + { + $this->data['items'] = array(); + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'entry')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + if ($items = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'item')) + { + $keys = array_keys($items); + foreach ($keys as $key) + { + $this->data['items'][] =& new $this->item_class($this, $items[$key]); + } + } + } + } + + if (!empty($this->data['items'])) + { + // If we want to order it by date, check if all items have a date, and then sort it + if ($this->order_by_date && empty($this->multifeed_objects)) + { + if (!isset($this->data['ordered_items'])) + { + $do_sort = true; + foreach ($this->data['items'] as $item) + { + if (!$item->get_date('U')) + { + $do_sort = false; + break; + } + } + $item = null; + $this->data['ordered_items'] = $this->data['items']; + if ($do_sort) + { + usort($this->data['ordered_items'], array(&$this, 'sort_items')); + } + } + $items = $this->data['ordered_items']; + } + else + { + $items = $this->data['items']; + } + + // Slice the data as desired + if ($end === 0) + { + return array_slice($items, $start); + } + else + { + return array_slice($items, $start, $end); + } + } + else + { + return array(); + } + } + + /** + * @static + */ + function sort_items($a, $b) + { + return $a->get_date('U') <= $b->get_date('U'); + } + + /** + * @static + */ + function merge_items($urls, $start = 0, $end = 0, $limit = 0) + { + if (is_array($urls) && sizeof($urls) > 0) + { + $items = array(); + foreach ($urls as $arg) + { + if (is_a($arg, 'SimplePie')) + { + $items = array_merge($items, $arg->get_items(0, $limit)); + } + else + { + trigger_error('Arguments must be SimplePie objects', E_USER_WARNING); + } + } + + $do_sort = true; + foreach ($items as $item) + { + if (!$item->get_date('U')) + { + $do_sort = false; + break; + } + } + $item = null; + if ($do_sort) + { + usort($items, array('SimplePie', 'sort_items')); + } + + if ($end === 0) + { + return array_slice($items, $start); + } + else + { + return array_slice($items, $start, $end); + } + } + else + { + trigger_error('Cannot merge zero SimplePie objects', E_USER_WARNING); + return array(); + } + } +} + +class SimplePie_Item +{ + var $feed; + var $data = array(); + + function SimplePie_Item($feed, $data) + { + $this->feed = $feed; + $this->data = $data; + } + + function __toString() + { + return md5(serialize($this->data)); + } + + /** + * Remove items that link back to this before destroying this object + */ + function __destruct() + { + if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode')) + { + unset($this->feed); + } + } + + function get_item_tags($namespace, $tag) + { + if (isset($this->data['child'][$namespace][$tag])) + { + return $this->data['child'][$namespace][$tag]; + } + else + { + return null; + } + } + + function get_base($element = array()) + { + return $this->feed->get_base($element); + } + + function sanitize($data, $type, $base = '') + { + return $this->feed->sanitize($data, $type, $base); + } + + function get_feed() + { + return $this->feed; + } + + function get_id($hash = false) + { + if (!$hash) + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (($return = $this->get_permalink()) !== null) + { + return $return; + } + elseif (($return = $this->get_title()) !== null) + { + return $return; + } + } + if ($this->get_permalink() !== null || $this->get_title() !== null) + { + return md5($this->get_permalink() . $this->get_title()); + } + else + { + return md5(serialize($this->data)); + } + } + + function get_title() + { + if (!isset($this->data['title'])) + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) + { + $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $this->data['title'] = null; + } + } + return $this->data['title']; + } + + function get_description($description_only = false) + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (!$description_only) + { + return $this->get_content(true); + } + else + { + return null; + } + } + + function get_content($content_only = false) + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_content_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + elseif (!$content_only) + { + return $this->get_description(true); + } + else + { + return null; + } + } + + function get_category($key = 0) + { + $categories = $this->get_categories(); + if (isset($categories[$key])) + { + return $categories[$key]; + } + else + { + return null; + } + } + + function get_categories() + { + $categories = array(); + + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['attribs']['']['term'])) + { + $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category) + { + // This is really the label, but keep this as the term also for BC. + // Label will also work on retrieving because that falls back to term. + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + if (isset($category['attribs']['']['domain'])) + { + $scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = null; + } + $categories[] =& new $this->feed->category_class($term, $scheme, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) + { + $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($categories)) + { + return SimplePie_Misc::array_unique($categories); + } + else + { + return null; + } + } + + function get_author($key = 0) + { + $authors = $this->get_authors(); + if (isset($authors[$key])) + { + return $authors[$key]; + } + else + { + return null; + } + } + + function get_contributor($key = 0) + { + $contributors = $this->get_contributors(); + if (isset($contributors[$key])) + { + return $contributors[$key]; + } + else + { + return null; + } + } + + function get_contributors() + { + $contributors = array(); + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor) + { + $name = null; + $uri = null; + $email = null; + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) + { + $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) + { + $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) + { + $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $uri !== null) + { + $contributors[] =& new $this->feed->author_class($name, $uri, $email); + } + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor) + { + $name = null; + $url = null; + $email = null; + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) + { + $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) + { + $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) + { + $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $url !== null) + { + $contributors[] =& new $this->feed->author_class($name, $url, $email); + } + } + + if (!empty($contributors)) + { + return SimplePie_Misc::array_unique($contributors); + } + else + { + return null; + } + } + + function get_authors() + { + $authors = array(); + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author) + { + $name = null; + $uri = null; + $email = null; + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) + { + $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) + { + $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); + } + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) + { + $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $uri !== null) + { + $authors[] =& new $this->feed->author_class($name, $uri, $email); + } + } + if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author')) + { + $name = null; + $url = null; + $email = null; + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) + { + $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) + { + $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); + } + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) + { + $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $url !== null) + { + $authors[] =& new $this->feed->author_class($name, $url, $email); + } + } + if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'author')) + { + $authors[] =& new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author) + { + $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author) + { + $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author) + { + $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($authors)) + { + return SimplePie_Misc::array_unique($authors); + } + elseif (($source = $this->get_source()) && ($authors = $source->get_authors())) + { + return $authors; + } + elseif ($authors = $this->feed->get_authors()) + { + return $authors; + } + else + { + return null; + } + } + + function get_copyright() + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_date($date_format = 'j F Y, g:i a') + { + if (!isset($this->data['date'])) + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date')) + { + $this->data['date']['raw'] = $return[0]['data']; + } + + if (!empty($this->data['date']['raw'])) + { + $parser = SimplePie_Parse_Date::get(); + $this->data['date']['parsed'] = $parser->parse($this->data['date']['raw']); + } + else + { + $this->data['date'] = null; + } + } + if ($this->data['date']) + { + $date_format = (string) $date_format; + switch ($date_format) + { + case '': + return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT); + + case 'U': + return $this->data['date']['parsed']; + + default: + return date($date_format, $this->data['date']['parsed']); + } + } + else + { + return null; + } + } + + function get_local_date($date_format = '%c') + { + if (!$date_format) + { + return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (($date = $this->get_date('U')) !== null) + { + return strftime($date_format, $date); + } + else + { + return null; + } + } + + function get_permalink() + { + $link = $this->get_link(); + $enclosure = $this->get_enclosure(0); + if ($link !== null) + { + return $link; + } + elseif ($enclosure !== null) + { + return $enclosure->get_link(); + } + else + { + return null; + } + } + + function get_link($key = 0, $rel = 'alternate') + { + $links = $this->get_links($rel); + if ($links[$key] !== null) + { + return $links[$key]; + } + else + { + return null; + } + } + + function get_links($rel = 'alternate') + { + if (!isset($this->data['links'])) + { + $this->data['links'] = array(); + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link) + { + if (isset($link['attribs']['']['href'])) + { + $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; + $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + + } + } + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link) + { + if (isset($link['attribs']['']['href'])) + { + $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; + $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + } + } + if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid')) + { + if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) === 'true') + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + } + + $keys = array_keys($this->data['links']); + foreach ($keys as $key) + { + if (SimplePie_Misc::is_isegment_nz_nc($key)) + { + if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) + { + $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); + $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; + } + else + { + $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; + } + } + elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) + { + $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; + } + $this->data['links'][$key] = array_unique($this->data['links'][$key]); + } + } + if (isset($this->data['links'][$rel])) + { + return $this->data['links'][$rel]; + } + else + { + return null; + } + } + + /** + * @todo Add ability to prefer one type of content over another (in a media group). + */ + function get_enclosure($key = 0, $prefer = null) + { + $enclosures = $this->get_enclosures(); + if (isset($enclosures[$key])) + { + return $enclosures[$key]; + } + else + { + return null; + } + } + + /** + * Grabs all available enclosures (podcasts, etc.) + * + * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS. + * + * At this point, we're pretty much assuming that all enclosures for an item are the same content. Anything else is too complicated to properly support. + * + * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4). + * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists). + */ + function get_enclosures() + { + if (!isset($this->data['enclosures'])) + { + $this->data['enclosures'] = array(); + + // Elements + $captions_parent = null; + $categories_parent = null; + $copyrights_parent = null; + $credits_parent = null; + $description_parent = null; + $duration_parent = null; + $hashes_parent = null; + $keywords_parent = null; + $player_parent = null; + $ratings_parent = null; + $restrictions_parent = null; + $thumbnails_parent = null; + $title_parent = null; + + // Let's do the channel and item-level ones first, and just re-use them if we need to. + $parent = $this->get_feed(); + + // CAPTIONS + if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text')) + { + foreach ($captions as $caption) + { + $caption_type = null; + $caption_lang = null; + $caption_startTime = null; + $caption_endTime = null; + $caption_text = null; + if (isset($caption['attribs']['']['type'])) + { + $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['lang'])) + { + $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['start'])) + { + $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['end'])) + { + $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['data'])) + { + $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + } + } + elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text')) + { + foreach ($captions as $caption) + { + $caption_type = null; + $caption_lang = null; + $caption_startTime = null; + $caption_endTime = null; + $caption_text = null; + if (isset($caption['attribs']['']['type'])) + { + $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['lang'])) + { + $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['start'])) + { + $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['end'])) + { + $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['data'])) + { + $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + } + } + if (is_array($captions_parent)) + { + $captions_parent = array_values(SimplePie_Misc::array_unique($captions_parent)); + } + + // CATEGORIES + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['data'])) + { + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = 'http://search.yahoo.com/mrss/category_schema'; + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + } + foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['data'])) + { + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = 'http://search.yahoo.com/mrss/category_schema'; + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + } + foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category) + { + $term = null; + $scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd'; + $label = null; + if (isset($category['attribs']['']['text'])) + { + $label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + + if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'])) + { + foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory) + { + if (isset($subcategory['attribs']['']['text'])) + { + $label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + } + } + } + if (is_array($categories_parent)) + { + $categories_parent = array_values(SimplePie_Misc::array_unique($categories_parent)); + } + + // COPYRIGHT + if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright')) + { + $copyright_url = null; + $copyright_label = null; + if (isset($copyright[0]['attribs']['']['url'])) + { + $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($copyright[0]['data'])) + { + $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); + } + elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright')) + { + $copyright_url = null; + $copyright_label = null; + if (isset($copyright[0]['attribs']['']['url'])) + { + $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($copyright[0]['data'])) + { + $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); + } + + // CREDITS + if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit')) + { + foreach ($credits as $credit) + { + $credit_role = null; + $credit_scheme = null; + $credit_name = null; + if (isset($credit['attribs']['']['role'])) + { + $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($credit['attribs']['']['scheme'])) + { + $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $credit_scheme = 'urn:ebu'; + } + if (isset($credit['data'])) + { + $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + } + } + elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit')) + { + foreach ($credits as $credit) + { + $credit_role = null; + $credit_scheme = null; + $credit_name = null; + if (isset($credit['attribs']['']['role'])) + { + $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($credit['attribs']['']['scheme'])) + { + $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $credit_scheme = 'urn:ebu'; + } + if (isset($credit['data'])) + { + $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + } + } + if (is_array($credits_parent)) + { + $credits_parent = array_values(SimplePie_Misc::array_unique($credits_parent)); + } + + // DESCRIPTION + if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description')) + { + if (isset($description_parent[0]['data'])) + { + $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + } + elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description')) + { + if (isset($description_parent[0]['data'])) + { + $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + } + + // DURATION + if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration')) + { + $seconds = null; + $minutes = null; + $hours = null; + if (isset($duration_parent[0]['data'])) + { + $temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + if (sizeof($temp) > 0) + { + (int) $seconds = array_pop($temp); + } + if (sizeof($temp) > 0) + { + (int) $minutes = array_pop($temp); + $seconds += $minutes * 60; + } + if (sizeof($temp) > 0) + { + (int) $hours = array_pop($temp); + $seconds += $hours * 3600; + } + unset($temp); + $duration_parent = $seconds; + } + } + + // HASHES + if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash')) + { + foreach ($hashes_iterator as $hash) + { + $value = null; + $algo = null; + if (isset($hash['data'])) + { + $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($hash['attribs']['']['algo'])) + { + $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $algo = 'md5'; + } + $hashes_parent[] = $algo.':'.$value; + } + } + elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash')) + { + foreach ($hashes_iterator as $hash) + { + $value = null; + $algo = null; + if (isset($hash['data'])) + { + $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($hash['attribs']['']['algo'])) + { + $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $algo = 'md5'; + } + $hashes_parent[] = $algo.':'.$value; + } + } + if (is_array($hashes_parent)) + { + $hashes_parent = array_values(SimplePie_Misc::array_unique($hashes_parent)); + } + + // KEYWORDS + if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords')) + { + if (isset($keywords[0]['data'])) + { + $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords_parent[] = trim($word); + } + } + unset($temp); + } + elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords')) + { + if (isset($keywords[0]['data'])) + { + $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords_parent[] = trim($word); + } + } + unset($temp); + } + elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords')) + { + if (isset($keywords[0]['data'])) + { + $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords_parent[] = trim($word); + } + } + unset($temp); + } + elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords')) + { + if (isset($keywords[0]['data'])) + { + $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords_parent[] = trim($word); + } + } + unset($temp); + } + if (is_array($keywords_parent)) + { + $keywords_parent = array_values(SimplePie_Misc::array_unique($keywords_parent)); + } + + // PLAYER + if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player')) + { + if (isset($player_parent[0]['attribs']['']['url'])) + { + $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + } + elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player')) + { + if (isset($player_parent[0]['attribs']['']['url'])) + { + $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + } + + // RATINGS + if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating')) + { + foreach ($ratings as $rating) + { + $rating_scheme = null; + $rating_value = null; + if (isset($rating['attribs']['']['scheme'])) + { + $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $rating_scheme = 'urn:simple'; + } + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + } + elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) + { + foreach ($ratings as $rating) + { + $rating_scheme = 'urn:itunes'; + $rating_value = null; + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + } + elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating')) + { + foreach ($ratings as $rating) + { + $rating_scheme = null; + $rating_value = null; + if (isset($rating['attribs']['']['scheme'])) + { + $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $rating_scheme = 'urn:simple'; + } + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + } + elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) + { + foreach ($ratings as $rating) + { + $rating_scheme = 'urn:itunes'; + $rating_value = null; + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + } + if (is_array($ratings_parent)) + { + $ratings_parent = array_values(SimplePie_Misc::array_unique($ratings_parent)); + } + + // RESTRICTIONS + if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction')) + { + foreach ($restrictions as $restriction) + { + $restriction_relationship = null; + $restriction_type = null; + $restriction_value = null; + if (isset($restriction['attribs']['']['relationship'])) + { + $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['attribs']['']['type'])) + { + $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['data'])) + { + $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + } + elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) + { + foreach ($restrictions as $restriction) + { + $restriction_relationship = 'allow'; + $restriction_type = null; + $restriction_value = 'itunes'; + if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes') + { + $restriction_relationship = 'deny'; + } + $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + } + elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction')) + { + foreach ($restrictions as $restriction) + { + $restriction_relationship = null; + $restriction_type = null; + $restriction_value = null; + if (isset($restriction['attribs']['']['relationship'])) + { + $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['attribs']['']['type'])) + { + $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['data'])) + { + $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + } + elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) + { + foreach ($restrictions as $restriction) + { + $restriction_relationship = 'allow'; + $restriction_type = null; + $restriction_value = 'itunes'; + if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes') + { + $restriction_relationship = 'deny'; + } + $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + } + if (is_array($restrictions_parent)) + { + $restrictions_parent = array_values(SimplePie_Misc::array_unique($restrictions_parent)); + } + + // THUMBNAILS + if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail')) + { + foreach ($thumbnails as $thumbnail) + { + if (isset($thumbnail['attribs']['']['url'])) + { + $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + } + } + elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail')) + { + foreach ($thumbnails as $thumbnail) + { + if (isset($thumbnail['attribs']['']['url'])) + { + $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + } + } + + // TITLES + if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title')) + { + if (isset($title_parent[0]['data'])) + { + $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + } + elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title')) + { + if (isset($title_parent[0]['data'])) + { + $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + } + + // Clear the memory + unset($parent); + + // Attributes + $bitrate = null; + $channels = null; + $duration = null; + $expression = null; + $framerate = null; + $height = null; + $javascript = null; + $lang = null; + $length = null; + $medium = null; + $samplingrate = null; + $type = null; + $url = null; + $width = null; + + // Elements + $captions = null; + $categories = null; + $copyrights = null; + $credits = null; + $description = null; + $hashes = null; + $keywords = null; + $player = null; + $ratings = null; + $restrictions = null; + $thumbnails = null; + $title = null; + + // If we have media:group tags, loop through them. + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group) + { + if(isset($group['child']) && isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'])) + { + // If we have media:content tags, loop through them. + foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content) + { + if (isset($content['attribs']['']['url'])) + { + // Attributes + $bitrate = null; + $channels = null; + $duration = null; + $expression = null; + $framerate = null; + $height = null; + $javascript = null; + $lang = null; + $length = null; + $medium = null; + $samplingrate = null; + $type = null; + $url = null; + $width = null; + + // Elements + $captions = null; + $categories = null; + $copyrights = null; + $credits = null; + $description = null; + $hashes = null; + $keywords = null; + $player = null; + $ratings = null; + $restrictions = null; + $thumbnails = null; + $title = null; + + // Start checking the attributes of media:content + if (isset($content['attribs']['']['bitrate'])) + { + $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['channels'])) + { + $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['duration'])) + { + $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $duration = $duration_parent; + } + if (isset($content['attribs']['']['expression'])) + { + $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['framerate'])) + { + $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['height'])) + { + $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['lang'])) + { + $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['fileSize'])) + { + $length = ceil($content['attribs']['']['fileSize']); + } + if (isset($content['attribs']['']['medium'])) + { + $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['samplingrate'])) + { + $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['type'])) + { + $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['width'])) + { + $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + + // Checking the other optional media: elements. Priority: media:content, media:group, item, channel + + // CAPTIONS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption) + { + $caption_type = null; + $caption_lang = null; + $caption_startTime = null; + $caption_endTime = null; + $caption_text = null; + if (isset($caption['attribs']['']['type'])) + { + $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['lang'])) + { + $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['start'])) + { + $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['end'])) + { + $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['data'])) + { + $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + } + if (is_array($captions)) + { + $captions = array_values(SimplePie_Misc::array_unique($captions)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'])) + { + foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption) + { + $caption_type = null; + $caption_lang = null; + $caption_startTime = null; + $caption_endTime = null; + $caption_text = null; + if (isset($caption['attribs']['']['type'])) + { + $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['lang'])) + { + $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['start'])) + { + $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['end'])) + { + $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['data'])) + { + $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + } + if (is_array($captions)) + { + $captions = array_values(SimplePie_Misc::array_unique($captions)); + } + } + else + { + $captions = $captions_parent; + } + + // CATEGORIES + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) + { + foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['data'])) + { + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = 'http://search.yahoo.com/mrss/category_schema'; + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + } + if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) + { + foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['data'])) + { + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = 'http://search.yahoo.com/mrss/category_schema'; + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + } + if (is_array($categories) && is_array($categories_parent)) + { + $categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent))); + } + elseif (is_array($categories)) + { + $categories = array_values(SimplePie_Misc::array_unique($categories)); + } + elseif (is_array($categories_parent)) + { + $categories = array_values(SimplePie_Misc::array_unique($categories_parent)); + } + + // COPYRIGHTS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) + { + $copyright_url = null; + $copyright_label = null; + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'])) + { + $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'])) + { + $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) + { + $copyright_url = null; + $copyright_label = null; + if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'])) + { + $copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'])) + { + $copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + } + else + { + $copyrights = $copyrights_parent; + } + + // CREDITS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit) + { + $credit_role = null; + $credit_scheme = null; + $credit_name = null; + if (isset($credit['attribs']['']['role'])) + { + $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($credit['attribs']['']['scheme'])) + { + $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $credit_scheme = 'urn:ebu'; + } + if (isset($credit['data'])) + { + $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + } + if (is_array($credits)) + { + $credits = array_values(SimplePie_Misc::array_unique($credits)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'])) + { + foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit) + { + $credit_role = null; + $credit_scheme = null; + $credit_name = null; + if (isset($credit['attribs']['']['role'])) + { + $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($credit['attribs']['']['scheme'])) + { + $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $credit_scheme = 'urn:ebu'; + } + if (isset($credit['data'])) + { + $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + } + if (is_array($credits)) + { + $credits = array_values(SimplePie_Misc::array_unique($credits)); + } + } + else + { + $credits = $credits_parent; + } + + // DESCRIPTION + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'])) + { + $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'])) + { + $description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $description = $description_parent; + } + + // HASHES + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash) + { + $value = null; + $algo = null; + if (isset($hash['data'])) + { + $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($hash['attribs']['']['algo'])) + { + $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $algo = 'md5'; + } + $hashes[] = $algo.':'.$value; + } + if (is_array($hashes)) + { + $hashes = array_values(SimplePie_Misc::array_unique($hashes)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'])) + { + foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash) + { + $value = null; + $algo = null; + if (isset($hash['data'])) + { + $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($hash['attribs']['']['algo'])) + { + $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $algo = 'md5'; + } + $hashes[] = $algo.':'.$value; + } + if (is_array($hashes)) + { + $hashes = array_values(SimplePie_Misc::array_unique($hashes)); + } + } + else + { + $hashes = $hashes_parent; + } + + // KEYWORDS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'])) + { + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'])) + { + $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords[] = trim($word); + } + unset($temp); + } + if (is_array($keywords)) + { + $keywords = array_values(SimplePie_Misc::array_unique($keywords)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'])) + { + if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'])) + { + $temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords[] = trim($word); + } + unset($temp); + } + if (is_array($keywords)) + { + $keywords = array_values(SimplePie_Misc::array_unique($keywords)); + } + } + else + { + $keywords = $keywords_parent; + } + + // PLAYER + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'])) + { + $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'])) + { + $player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + $player = $player_parent; + } + + // RATINGS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating) + { + $rating_scheme = null; + $rating_value = null; + if (isset($rating['attribs']['']['scheme'])) + { + $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $rating_scheme = 'urn:simple'; + } + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + if (is_array($ratings)) + { + $ratings = array_values(SimplePie_Misc::array_unique($ratings)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'])) + { + foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating) + { + $rating_scheme = null; + $rating_value = null; + if (isset($rating['attribs']['']['scheme'])) + { + $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $rating_scheme = 'urn:simple'; + } + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + if (is_array($ratings)) + { + $ratings = array_values(SimplePie_Misc::array_unique($ratings)); + } + } + else + { + $ratings = $ratings_parent; + } + + // RESTRICTIONS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction) + { + $restriction_relationship = null; + $restriction_type = null; + $restriction_value = null; + if (isset($restriction['attribs']['']['relationship'])) + { + $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['attribs']['']['type'])) + { + $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['data'])) + { + $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + if (is_array($restrictions)) + { + $restrictions = array_values(SimplePie_Misc::array_unique($restrictions)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'])) + { + foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction) + { + $restriction_relationship = null; + $restriction_type = null; + $restriction_value = null; + if (isset($restriction['attribs']['']['relationship'])) + { + $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['attribs']['']['type'])) + { + $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['data'])) + { + $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + if (is_array($restrictions)) + { + $restrictions = array_values(SimplePie_Misc::array_unique($restrictions)); + } + } + else + { + $restrictions = $restrictions_parent; + } + + // THUMBNAILS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail) + { + $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + if (is_array($thumbnails)) + { + $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails)); + } + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'])) + { + foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail) + { + $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + if (is_array($thumbnails)) + { + $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails)); + } + } + else + { + $thumbnails = $thumbnails_parent; + } + + // TITLES + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'])) + { + $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'])) + { + $title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $title = $title_parent; + } + + $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); + } + } + } + } + + // If we have standalone media:content tags, loop through them. + if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'])) + { + foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content) + { + if (isset($content['attribs']['']['url'])) + { + // Attributes + $bitrate = null; + $channels = null; + $duration = null; + $expression = null; + $framerate = null; + $height = null; + $javascript = null; + $lang = null; + $length = null; + $medium = null; + $samplingrate = null; + $type = null; + $url = null; + $width = null; + + // Elements + $captions = null; + $categories = null; + $copyrights = null; + $credits = null; + $description = null; + $hashes = null; + $keywords = null; + $player = null; + $ratings = null; + $restrictions = null; + $thumbnails = null; + $title = null; + + // Start checking the attributes of media:content + if (isset($content['attribs']['']['bitrate'])) + { + $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['channels'])) + { + $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['duration'])) + { + $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $duration = $duration_parent; + } + if (isset($content['attribs']['']['expression'])) + { + $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['framerate'])) + { + $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['height'])) + { + $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['lang'])) + { + $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['fileSize'])) + { + $length = ceil($content['attribs']['']['fileSize']); + } + if (isset($content['attribs']['']['medium'])) + { + $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['samplingrate'])) + { + $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['type'])) + { + $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['attribs']['']['width'])) + { + $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + + // Checking the other optional media: elements. Priority: media:content, media:group, item, channel + + // CAPTIONS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption) + { + $caption_type = null; + $caption_lang = null; + $caption_startTime = null; + $caption_endTime = null; + $caption_text = null; + if (isset($caption['attribs']['']['type'])) + { + $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['lang'])) + { + $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['start'])) + { + $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['attribs']['']['end'])) + { + $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($caption['data'])) + { + $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + } + if (is_array($captions)) + { + $captions = array_values(SimplePie_Misc::array_unique($captions)); + } + } + else + { + $captions = $captions_parent; + } + + // CATEGORIES + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) + { + foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['data'])) + { + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = 'http://search.yahoo.com/mrss/category_schema'; + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->feed->category_class($term, $scheme, $label); + } + } + if (is_array($categories) && is_array($categories_parent)) + { + $categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent))); + } + elseif (is_array($categories)) + { + $categories = array_values(SimplePie_Misc::array_unique($categories)); + } + elseif (is_array($categories_parent)) + { + $categories = array_values(SimplePie_Misc::array_unique($categories_parent)); + } + else + { + $categories = null; + } + + // COPYRIGHTS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) + { + $copyright_url = null; + $copyright_label = null; + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'])) + { + $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'])) + { + $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + } + else + { + $copyrights = $copyrights_parent; + } + + // CREDITS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit) + { + $credit_role = null; + $credit_scheme = null; + $credit_name = null; + if (isset($credit['attribs']['']['role'])) + { + $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($credit['attribs']['']['scheme'])) + { + $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $credit_scheme = 'urn:ebu'; + } + if (isset($credit['data'])) + { + $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + } + if (is_array($credits)) + { + $credits = array_values(SimplePie_Misc::array_unique($credits)); + } + } + else + { + $credits = $credits_parent; + } + + // DESCRIPTION + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'])) + { + $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $description = $description_parent; + } + + // HASHES + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash) + { + $value = null; + $algo = null; + if (isset($hash['data'])) + { + $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($hash['attribs']['']['algo'])) + { + $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $algo = 'md5'; + } + $hashes[] = $algo.':'.$value; + } + if (is_array($hashes)) + { + $hashes = array_values(SimplePie_Misc::array_unique($hashes)); + } + } + else + { + $hashes = $hashes_parent; + } + + // KEYWORDS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'])) + { + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'])) + { + $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + foreach ($temp as $word) + { + $keywords[] = trim($word); + } + unset($temp); + } + if (is_array($keywords)) + { + $keywords = array_values(SimplePie_Misc::array_unique($keywords)); + } + } + else + { + $keywords = $keywords_parent; + } + + // PLAYER + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'])) + { + $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + $player = $player_parent; + } + + // RATINGS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating) + { + $rating_scheme = null; + $rating_value = null; + if (isset($rating['attribs']['']['scheme'])) + { + $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $rating_scheme = 'urn:simple'; + } + if (isset($rating['data'])) + { + $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + } + if (is_array($ratings)) + { + $ratings = array_values(SimplePie_Misc::array_unique($ratings)); + } + } + else + { + $ratings = $ratings_parent; + } + + // RESTRICTIONS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction) + { + $restriction_relationship = null; + $restriction_type = null; + $restriction_value = null; + if (isset($restriction['attribs']['']['relationship'])) + { + $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['attribs']['']['type'])) + { + $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($restriction['data'])) + { + $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + } + if (is_array($restrictions)) + { + $restrictions = array_values(SimplePie_Misc::array_unique($restrictions)); + } + } + else + { + $restrictions = $restrictions_parent; + } + + // THUMBNAILS + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'])) + { + foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail) + { + $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI); + } + if (is_array($thumbnails)) + { + $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails)); + } + } + else + { + $thumbnails = $thumbnails_parent; + } + + // TITLES + if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'])) + { + $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $title = $title_parent; + } + + $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); + } + } + } + + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link) + { + if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure') + { + // Attributes + $bitrate = null; + $channels = null; + $duration = null; + $expression = null; + $framerate = null; + $height = null; + $javascript = null; + $lang = null; + $length = null; + $medium = null; + $samplingrate = null; + $type = null; + $url = null; + $width = null; + + $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + if (isset($link['attribs']['']['type'])) + { + $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($link['attribs']['']['length'])) + { + $length = ceil($link['attribs']['']['length']); + } + + // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor + $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + } + } + + foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link) + { + if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure') + { + // Attributes + $bitrate = null; + $channels = null; + $duration = null; + $expression = null; + $framerate = null; + $height = null; + $javascript = null; + $lang = null; + $length = null; + $medium = null; + $samplingrate = null; + $type = null; + $url = null; + $width = null; + + $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + if (isset($link['attribs']['']['type'])) + { + $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($link['attribs']['']['length'])) + { + $length = ceil($link['attribs']['']['length']); + } + + // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor + $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + } + } + + if ($enclosure = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'enclosure')) + { + if (isset($enclosure[0]['attribs']['']['url'])) + { + // Attributes + $bitrate = null; + $channels = null; + $duration = null; + $expression = null; + $framerate = null; + $height = null; + $javascript = null; + $lang = null; + $length = null; + $medium = null; + $samplingrate = null; + $type = null; + $url = null; + $width = null; + + $url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0])); + if (isset($enclosure[0]['attribs']['']['type'])) + { + $type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($enclosure[0]['attribs']['']['length'])) + { + $length = ceil($enclosure[0]['attribs']['']['length']); + } + + // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor + $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + } + } + + if (sizeof($this->data['enclosures']) === 0 && ($url || $type || $length || $bitrate || $captions_parent || $categories_parent || $channels || $copyrights_parent || $credits_parent || $description_parent || $duration_parent || $expression || $framerate || $hashes_parent || $height || $keywords_parent || $lang || $medium || $player_parent || $ratings_parent || $restrictions_parent || $samplingrate || $thumbnails_parent || $title_parent || $width)) + { + // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor + $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + } + + $this->data['enclosures'] = array_values(SimplePie_Misc::array_unique($this->data['enclosures'])); + } + if (!empty($this->data['enclosures'])) + { + return $this->data['enclosures']; + } + else + { + return null; + } + } + + function get_latitude() + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat')) + { + return (float) $return[0]['data']; + } + elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match)) + { + return (float) $match[1]; + } + else + { + return null; + } + } + + function get_longitude() + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long')) + { + return (float) $return[0]['data']; + } + elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon')) + { + return (float) $return[0]['data']; + } + elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match)) + { + return (float) $match[2]; + } + else + { + return null; + } + } + + function get_source() + { + if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'source')) + { + return new $this->feed->source_class($this, $return[0]); + } + else + { + return null; + } + } + + /** + * Creates the add_to_* methods' return data + * + * @access private + * @param string $item_url String to prefix to the item permalink + * @param string $title_url String to prefix to the item title + * (and suffix to the item permalink) + * @return mixed URL if feed exists, false otherwise + */ + function add_to_service($item_url, $title_url = null, $summary_url = null) + { + if ($this->get_permalink() !== null) + { + $return = $item_url . rawurlencode($this->get_permalink()); + if ($title_url !== null && $this->get_title() !== null) + { + $return .= $title_url . rawurlencode($this->get_title()); + } + if ($summary_url !== null && $this->get_description() !== null) + { + $return .= $summary_url . rawurlencode($this->get_description()); + } + return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_IRI); + } + else + { + return null; + } + } + + function add_to_blinklist() + { + return $this->add_to_service('http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=', '&Title='); + } + + function add_to_blogmarks() + { + return $this->add_to_service('http://blogmarks.net/my/new.php?mini=1&simple=1&url=', '&title='); + } + + function add_to_delicious() + { + return $this->add_to_service('http://del.icio.us/post/?v=4&url=', '&title='); + } + + function add_to_digg() + { + return $this->add_to_service('http://digg.com/submit?url=', '&title=', '&bodytext='); + } + + function add_to_furl() + { + return $this->add_to_service('http://www.furl.net/storeIt.jsp?u=', '&t='); + } + + function add_to_magnolia() + { + return $this->add_to_service('http://ma.gnolia.com/bookmarklet/add?url=', '&title='); + } + + function add_to_myweb20() + { + return $this->add_to_service('http://myweb2.search.yahoo.com/myresults/bookmarklet?u=', '&t='); + } + + function add_to_newsvine() + { + return $this->add_to_service('http://www.newsvine.com/_wine/save?u=', '&h='); + } + + function add_to_reddit() + { + return $this->add_to_service('http://reddit.com/submit?url=', '&title='); + } + + function add_to_segnalo() + { + return $this->add_to_service('http://segnalo.com/post.html.php?url=', '&title='); + } + + function add_to_simpy() + { + return $this->add_to_service('http://www.simpy.com/simpy/LinkAdd.do?href=', '&title='); + } + + function add_to_spurl() + { + return $this->add_to_service('http://www.spurl.net/spurl.php?v=3&url=', '&title='); + } + + function add_to_wists() + { + return $this->add_to_service('http://wists.com/r.php?c=&r=', '&title='); + } + + function search_technorati() + { + return $this->add_to_service('http://www.technorati.com/search/'); + } +} + +class SimplePie_Source +{ + var $item; + var $data = array(); + + function SimplePie_Source($item, $data) + { + $this->item = $item; + $this->data = $data; + } + + function __toString() + { + return md5(serialize($this->data)); + } + + function get_source_tags($namespace, $tag) + { + if (isset($this->data['child'][$namespace][$tag])) + { + return $this->data['child'][$namespace][$tag]; + } + else + { + return null; + } + } + + function get_base($element = array()) + { + return $this->item->get_base($element); + } + + function sanitize($data, $type, $base = '') + { + return $this->item->sanitize($data, $type, $base); + } + + function get_item() + { + return $this->item; + } + + function get_title() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_category($key = 0) + { + $categories = $this->get_categories(); + if (isset($categories[$key])) + { + return $categories[$key]; + } + else + { + return null; + } + } + + function get_categories() + { + $categories = array(); + + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category) + { + $term = null; + $scheme = null; + $label = null; + if (isset($category['attribs']['']['term'])) + { + $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['scheme'])) + { + $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($category['attribs']['']['label'])) + { + $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); + } + $categories[] =& new $this->item->feed->category_class($term, $scheme, $label); + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category) + { + // This is really the label, but keep this as the term also for BC. + // Label will also work on retrieving because that falls back to term. + $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT); + if (isset($category['attribs']['']['domain'])) + { + $scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + $scheme = null; + } + $categories[] =& new $this->item->feed->category_class($term, $scheme, null); + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) + { + $categories[] =& new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) + { + $categories[] =& new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($categories)) + { + return SimplePie_Misc::array_unique($categories); + } + else + { + return null; + } + } + + function get_author($key = 0) + { + $authors = $this->get_authors(); + if (isset($authors[$key])) + { + return $authors[$key]; + } + else + { + return null; + } + } + + function get_authors() + { + $authors = array(); + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author) + { + $name = null; + $uri = null; + $email = null; + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) + { + $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) + { + $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); + } + if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) + { + $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $uri !== null) + { + $authors[] =& new $this->item->feed->author_class($name, $uri, $email); + } + } + if ($author = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author')) + { + $name = null; + $url = null; + $email = null; + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) + { + $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) + { + $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); + } + if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) + { + $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $url !== null) + { + $authors[] =& new $this->item->feed->author_class($name, $url, $email); + } + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author) + { + $authors[] =& new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author) + { + $authors[] =& new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author) + { + $authors[] =& new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + } + + if (!empty($authors)) + { + return SimplePie_Misc::array_unique($authors); + } + else + { + return null; + } + } + + function get_contributor($key = 0) + { + $contributors = $this->get_contributors(); + if (isset($contributors[$key])) + { + return $contributors[$key]; + } + else + { + return null; + } + } + + function get_contributors() + { + $contributors = array(); + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor) + { + $name = null; + $uri = null; + $email = null; + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])) + { + $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])) + { + $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0])); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'])) + { + $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $uri !== null) + { + $contributors[] =& new $this->item->feed->author_class($name, $uri, $email); + } + } + foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor) + { + $name = null; + $url = null; + $email = null; + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'])) + { + $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'])) + { + $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0])); + } + if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'])) + { + $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + if ($name !== null || $email !== null || $url !== null) + { + $contributors[] =& new $this->item->feed->author_class($name, $url, $email); + } + } + + if (!empty($contributors)) + { + return SimplePie_Misc::array_unique($contributors); + } + else + { + return null; + } + } + + function get_link($key = 0, $rel = 'alternate') + { + $links = $this->get_links($rel); + if (isset($links[$key])) + { + return $links[$key]; + } + else + { + return null; + } + } + + /** + * Added for parity between the parent-level and the item/entry-level. + */ + function get_permalink() + { + return $this->get_link(0); + } + + function get_links($rel = 'alternate') + { + if (!isset($this->data['links'])) + { + $this->data['links'] = array(); + if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link')) + { + foreach ($links as $link) + { + if (isset($link['attribs']['']['href'])) + { + $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; + $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + } + } + } + if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link')) + { + foreach ($links as $link) + { + if (isset($link['attribs']['']['href'])) + { + $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; + $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); + + } + } + } + if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link')) + { + $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); + } + + $keys = array_keys($this->data['links']); + foreach ($keys as $key) + { + if (SimplePie_Misc::is_isegment_nz_nc($key)) + { + if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) + { + $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); + $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; + } + else + { + $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; + } + } + elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) + { + $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; + } + $this->data['links'][$key] = array_unique($this->data['links'][$key]); + } + } + + if (isset($this->data['links'][$rel])) + { + return $this->data['links'][$rel]; + } + else + { + return null; + } + } + + function get_description() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0])); + } + else + { + return null; + } + } + + function get_copyright() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright')) + { + return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_language() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); + } + elseif (isset($this->data['xml_lang'])) + { + return $this->sanitize($this->data['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT); + } + else + { + return null; + } + } + + function get_latitude() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat')) + { + return (float) $return[0]['data']; + } + elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match)) + { + return (float) $match[1]; + } + else + { + return null; + } + } + + function get_longitude() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long')) + { + return (float) $return[0]['data']; + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon')) + { + return (float) $return[0]['data']; + } + elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match)) + { + return (float) $match[2]; + } + else + { + return null; + } + } + + function get_image_url() + { + if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image')) + { + return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon')) + { + return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0])); + } + else + { + return null; + } + } +} + +class SimplePie_Author +{ + var $name; + var $link; + var $email; + + // Constructor, used to input the data + function SimplePie_Author($name = null, $link = null, $email = null) + { + $this->name = $name; + $this->link = $link; + $this->email = $email; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_name() + { + if ($this->name !== null) + { + return $this->name; + } + else + { + return null; + } + } + + function get_link() + { + if ($this->link !== null) + { + return $this->link; + } + else + { + return null; + } + } + + function get_email() + { + if ($this->email !== null) + { + return $this->email; + } + else + { + return null; + } + } +} + +class SimplePie_Category +{ + var $term; + var $scheme; + var $label; + + // Constructor, used to input the data + function SimplePie_Category($term = null, $scheme = null, $label = null) + { + $this->term = $term; + $this->scheme = $scheme; + $this->label = $label; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_term() + { + if ($this->term !== null) + { + return $this->term; + } + else + { + return null; + } + } + + function get_scheme() + { + if ($this->scheme !== null) + { + return $this->scheme; + } + else + { + return null; + } + } + + function get_label() + { + if ($this->label !== null) + { + return $this->label; + } + else + { + return $this->get_term(); + } + } +} + +class SimplePie_Enclosure +{ + var $bitrate; + var $captions; + var $categories; + var $channels; + var $copyright; + var $credits; + var $description; + var $duration; + var $expression; + var $framerate; + var $handler; + var $hashes; + var $height; + var $javascript; + var $keywords; + var $lang; + var $length; + var $link; + var $medium; + var $player; + var $ratings; + var $restrictions; + var $samplingrate; + var $thumbnails; + var $title; + var $type; + var $width; + + // Constructor, used to input the data + function SimplePie_Enclosure($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null) + { + $this->bitrate = $bitrate; + $this->captions = $captions; + $this->categories = $categories; + $this->channels = $channels; + $this->copyright = $copyright; + $this->credits = $credits; + $this->description = $description; + $this->duration = $duration; + $this->expression = $expression; + $this->framerate = $framerate; + $this->hashes = $hashes; + $this->height = $height; + $this->javascript = $javascript; + $this->keywords = $keywords; + $this->lang = $lang; + $this->length = $length; + $this->link = $link; + $this->medium = $medium; + $this->player = $player; + $this->ratings = $ratings; + $this->restrictions = $restrictions; + $this->samplingrate = $samplingrate; + $this->thumbnails = $thumbnails; + $this->title = $title; + $this->type = $type; + $this->width = $width; + if (class_exists('idna_convert')) + { + $idn =& new idna_convert; + $parsed = SimplePie_Misc::parse_url($link); + $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); + } + $this->handler = $this->get_handler(); // Needs to load last + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_bitrate() + { + if ($this->bitrate !== null) + { + return $this->bitrate; + } + else + { + return null; + } + } + + function get_caption($key = 0) + { + $captions = $this->get_captions(); + if (isset($captions[$key])) + { + return $captions[$key]; + } + else + { + return null; + } + } + + function get_captions() + { + if ($this->captions !== null) + { + return $this->captions; + } + else + { + return null; + } + } + + function get_category($key = 0) + { + $categories = $this->get_categories(); + if (isset($categories[$key])) + { + return $categories[$key]; + } + else + { + return null; + } + } + + function get_categories() + { + if ($this->categories !== null) + { + return $this->categories; + } + else + { + return null; + } + } + + function get_channels() + { + if ($this->channels !== null) + { + return $this->channels; + } + else + { + return null; + } + } + + function get_copyright() + { + if ($this->copyright !== null) + { + return $this->copyright; + } + else + { + return null; + } + } + + function get_credit($key = 0) + { + $credits = $this->get_credits(); + if (isset($credits[$key])) + { + return $credits[$key]; + } + else + { + return null; + } + } + + function get_credits() + { + if ($this->credits !== null) + { + return $this->credits; + } + else + { + return null; + } + } + + function get_description() + { + if ($this->description !== null) + { + return $this->description; + } + else + { + return null; + } + } + + function get_duration($convert = false) + { + if ($this->duration !== null) + { + if ($convert) + { + $time = SimplePie_Misc::time_hms($this->duration); + return $time; + } + else + { + return $this->duration; + } + } + else + { + return null; + } + } + + function get_expression() + { + if ($this->expression !== null) + { + return $this->expression; + } + else + { + return 'full'; + } + } + + function get_extension() + { + if ($this->link !== null) + { + $url = SimplePie_Misc::parse_url($this->link); + if ($url['path'] !== '') + { + return pathinfo($url['path'], PATHINFO_EXTENSION); + } + } + return null; + } + + function get_framerate() + { + if ($this->framerate !== null) + { + return $this->framerate; + } + else + { + return null; + } + } + + function get_handler() + { + return $this->get_real_type(true); + } + + function get_hash($key = 0) + { + $hashes = $this->get_hashes(); + if (isset($hashes[$key])) + { + return $hashes[$key]; + } + else + { + return null; + } + } + + function get_hashes() + { + if ($this->hashes !== null) + { + return $this->hashes; + } + else + { + return null; + } + } + + function get_height() + { + if ($this->height !== null) + { + return $this->height; + } + else + { + return null; + } + } + + function get_language() + { + if ($this->lang !== null) + { + return $this->lang; + } + else + { + return null; + } + } + + function get_keyword($key = 0) + { + $keywords = $this->get_keywords(); + if (isset($keywords[$key])) + { + return $keywords[$key]; + } + else + { + return null; + } + } + + function get_keywords() + { + if ($this->keywords !== null) + { + return $this->keywords; + } + else + { + return null; + } + } + + function get_length() + { + if ($this->length !== null) + { + return $this->length; + } + else + { + return null; + } + } + + function get_link() + { + if ($this->link !== null) + { + return urldecode($this->link); + } + else + { + return null; + } + } + + function get_medium() + { + if ($this->medium !== null) + { + return $this->medium; + } + else + { + return null; + } + } + + function get_player() + { + if ($this->player !== null) + { + return $this->player; + } + else + { + return null; + } + } + + function get_rating($key = 0) + { + $ratings = $this->get_ratings(); + if (isset($ratings[$key])) + { + return $ratings[$key]; + } + else + { + return null; + } + } + + function get_ratings() + { + if ($this->ratings !== null) + { + return $this->ratings; + } + else + { + return null; + } + } + + function get_restriction($key = 0) + { + $restrictions = $this->get_restrictions(); + if (isset($restrictions[$key])) + { + return $restrictions[$key]; + } + else + { + return null; + } + } + + function get_restrictions() + { + if ($this->restrictions !== null) + { + return $this->restrictions; + } + else + { + return null; + } + } + + function get_sampling_rate() + { + if ($this->samplingrate !== null) + { + return $this->samplingrate; + } + else + { + return null; + } + } + + function get_size() + { + $length = $this->get_length(); + if ($length !== null) + { + return round($length/1048576, 2); + } + else + { + return null; + } + } + + function get_thumbnail($key = 0) + { + $thumbnails = $this->get_thumbnails(); + if (isset($thumbnails[$key])) + { + return $thumbnails[$key]; + } + else + { + return null; + } + } + + function get_thumbnails() + { + if ($this->thumbnails !== null) + { + return $this->thumbnails; + } + else + { + return null; + } + } + + function get_title() + { + if ($this->title !== null) + { + return $this->title; + } + else + { + return null; + } + } + + function get_type() + { + if ($this->type !== null) + { + return $this->type; + } + else + { + return null; + } + } + + function get_width() + { + if ($this->width !== null) + { + return $this->width; + } + else + { + return null; + } + } + + function native_embed($options='') + { + return $this->embed($options, true); + } + + /** + * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'. + */ + function embed($options = '', $native = false) + { + // Set up defaults + $audio = ''; + $video = ''; + $alt = ''; + $altclass = ''; + $loop = 'false'; + $width = 'auto'; + $height = 'auto'; + $bgcolor = '#ffffff'; + $mediaplayer = ''; + $widescreen = false; + $handler = $this->get_handler(); + $type = $this->get_real_type(); + + // Process options and reassign values as necessary + if (is_array($options)) + { + extract($options); + } + else + { + $options = explode(',', $options); + foreach($options as $option) + { + $opt = explode(':', $option, 2); + if (isset($opt[0], $opt[1])) + { + $opt[0] = trim($opt[0]); + $opt[1] = trim($opt[1]); + switch ($opt[0]) + { + case 'audio': + $audio = $opt[1]; + break; + + case 'video': + $video = $opt[1]; + break; + + case 'alt': + $alt = $opt[1]; + break; + + case 'altclass': + $altclass = $opt[1]; + break; + + case 'loop': + $loop = $opt[1]; + break; + + case 'width': + $width = $opt[1]; + break; + + case 'height': + $height = $opt[1]; + break; + + case 'bgcolor': + $bgcolor = $opt[1]; + break; + + case 'mediaplayer': + $mediaplayer = $opt[1]; + break; + + case 'widescreen': + $widescreen = $opt[1]; + break; + } + } + } + } + + $mime = explode('/', $type, 2); + $mime = $mime[0]; + + // Process values for 'auto' + if ($width === 'auto') + { + if ($mime === 'video') + { + if ($height === 'auto') + { + $width = 480; + } + elseif ($widescreen) + { + $width = round((intval($height)/9)*16); + } + else + { + $width = round((intval($height)/3)*4); + } + } + else + { + $width = '100%'; + } + } + + if ($height === 'auto') + { + if ($mime === 'audio') + { + $height = 0; + } + elseif ($mime === 'video') + { + if ($width === 'auto') + { + if ($widescreen) + { + $height = 270; + } + else + { + $height = 360; + } + } + elseif ($widescreen) + { + $height = round((intval($width)/16)*9); + } + else + { + $height = round((intval($width)/4)*3); + } + } + else + { + $height = 376; + } + } + elseif ($mime === 'audio') + { + $height = 0; + } + + // Set proper placeholder value + if ($mime === 'audio') + { + $placeholder = $audio; + } + elseif ($mime === 'video') + { + $placeholder = $video; + } + + $embed = ''; + + // Make sure the JS library is included + if (!$native) + { + static $javascript_outputted = null; + if (!$javascript_outputted && $this->javascript) + { + $embed .= '<script type="text/javascript" src="?' . htmlspecialchars($this->javascript) . '"></script>'; + $javascript_outputted = true; + } + } + + // Odeo Feed MP3's + if ($handler === 'odeo') + { + if ($native) + { + $embed .= '<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://adobe.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url=' . $this->get_link() . '"></embed>'; + } + else + { + $embed .= '<script type="text/javascript">embed_odeo("' . $this->get_link() . '");</script>'; + } + } + + // Flash + elseif ($handler === 'flash') + { + if ($native) + { + $embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>"; + } + else + { + $embed .= "<script type='text/javascript'>embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');</script>"; + } + } + + // Flash Media Player file types. + // Preferred handler for MP3 file types. + elseif ($handler === 'fmedia' || ($handler === 'mp3' && $mediaplayer !== '')) + { + $height += 20; + if ($native) + { + $embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>"; + } + else + { + $embed .= "<script type='text/javascript'>embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');</script>"; + } + } + + // QuickTime 7 file types. Need to test with QuickTime 6. + // Only handle MP3's if the Flash Media Player is not present. + elseif ($handler === 'quicktime' || ($handler === 'mp3' && $mediaplayer === '')) + { + $height += 16; + if ($native) + { + if ($placeholder !== '') + { + $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>"; + } + else + { + $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>"; + } + } + else + { + $embed .= "<script type='text/javascript'>embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');</script>"; + } + } + + // Windows Media + elseif ($handler === 'wmedia') + { + $height += 45; + if ($native) + { + $embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>"; + } + else + { + $embed .= "<script type='text/javascript'>embed_wmedia('$width', '$height', '" . $this->get_link() . "');</script>"; + } + } + + // Everything else + else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>'; + + return $embed; + } + + function get_real_type($find_handler = false) + { + // If it's Odeo, let's get it out of the way. + if (substr(strtolower($this->get_link()), 0, 15) === 'http://odeo.com') + { + return 'odeo'; + } + + // Mime-types by handler. + $types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash + $types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player + $types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime + $types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media + $types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3 + + if ($this->get_type() !== null) + { + $type = strtolower($this->type); + } + else + { + $type = null; + } + + // If we encounter an unsupported mime-type, check the file extension and guess intelligently. + if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3))) + { + switch (strtolower($this->get_extension())) + { + // Audio mime-types + case 'aac': + case 'adts': + $type = 'audio/acc'; + break; + + case 'aif': + case 'aifc': + case 'aiff': + case 'cdda': + $type = 'audio/aiff'; + break; + + case 'bwf': + $type = 'audio/wav'; + break; + + case 'kar': + case 'mid': + case 'midi': + case 'smf': + $type = 'audio/midi'; + break; + + case 'm4a': + $type = 'audio/x-m4a'; + break; + + case 'mp3': + case 'swa': + $type = 'audio/mp3'; + break; + + case 'wav': + $type = 'audio/wav'; + break; + + case 'wax': + $type = 'audio/x-ms-wax'; + break; + + case 'wma': + $type = 'audio/x-ms-wma'; + break; + + // Video mime-types + case '3gp': + case '3gpp': + $type = 'video/3gpp'; + break; + + case '3g2': + case '3gp2': + $type = 'video/3gpp2'; + break; + + case 'asf': + $type = 'video/x-ms-asf'; + break; + + case 'flv': + $type = 'video/x-flv'; + break; + + case 'm1a': + case 'm1s': + case 'm1v': + case 'm15': + case 'm75': + case 'mp2': + case 'mpa': + case 'mpeg': + case 'mpg': + case 'mpm': + case 'mpv': + $type = 'video/mpeg'; + break; + + case 'm4v': + $type = 'video/x-m4v'; + break; + + case 'mov': + case 'qt': + $type = 'video/quicktime'; + break; + + case 'mp4': + case 'mpg4': + $type = 'video/mp4'; + break; + + case 'sdv': + $type = 'video/sd-video'; + break; + + case 'wm': + $type = 'video/x-ms-wm'; + break; + + case 'wmv': + $type = 'video/x-ms-wmv'; + break; + + case 'wvx': + $type = 'video/x-ms-wvx'; + break; + + // Flash mime-types + case 'spl': + $type = 'application/futuresplash'; + break; + + case 'swf': + $type = 'application/x-shockwave-flash'; + break; + } + } + + if ($find_handler) + { + if (in_array($type, $types_flash)) + { + return 'flash'; + } + elseif (in_array($type, $types_fmedia)) + { + return 'fmedia'; + } + elseif (in_array($type, $types_quicktime)) + { + return 'quicktime'; + } + elseif (in_array($type, $types_wmedia)) + { + return 'wmedia'; + } + elseif (in_array($type, $types_mp3)) + { + return 'mp3'; + } + else + { + return null; + } + } + else + { + return $type; + } + } +} + +class SimplePie_Caption +{ + var $type; + var $lang; + var $startTime; + var $endTime; + var $text; + + // Constructor, used to input the data + function SimplePie_Caption($type = null, $lang = null, $startTime = null, $endTime = null, $text = null) + { + $this->type = $type; + $this->lang = $lang; + $this->startTime = $startTime; + $this->endTime = $endTime; + $this->text = $text; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_endtime() + { + if ($this->endTime !== null) + { + return $this->endTime; + } + else + { + return null; + } + } + + function get_language() + { + if ($this->lang !== null) + { + return $this->lang; + } + else + { + return null; + } + } + + function get_starttime() + { + if ($this->startTime !== null) + { + return $this->startTime; + } + else + { + return null; + } + } + + function get_text() + { + if ($this->text !== null) + { + return $this->text; + } + else + { + return null; + } + } + + function get_type() + { + if ($this->type !== null) + { + return $this->type; + } + else + { + return null; + } + } +} + +class SimplePie_Credit +{ + var $role; + var $scheme; + var $name; + + // Constructor, used to input the data + function SimplePie_Credit($role = null, $scheme = null, $name = null) + { + $this->role = $role; + $this->scheme = $scheme; + $this->name = $name; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_role() + { + if ($this->role !== null) + { + return $this->role; + } + else + { + return null; + } + } + + function get_scheme() + { + if ($this->scheme !== null) + { + return $this->scheme; + } + else + { + return null; + } + } + + function get_name() + { + if ($this->name !== null) + { + return $this->name; + } + else + { + return null; + } + } +} + +class SimplePie_Copyright +{ + var $url; + var $label; + + // Constructor, used to input the data + function SimplePie_Copyright($url = null, $label = null) + { + $this->url = $url; + $this->label = $label; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_url() + { + if ($this->url !== null) + { + return $this->url; + } + else + { + return null; + } + } + + function get_attribution() + { + if ($this->label !== null) + { + return $this->label; + } + else + { + return null; + } + } +} + +class SimplePie_Rating +{ + var $scheme; + var $value; + + // Constructor, used to input the data + function SimplePie_Rating($scheme = null, $value = null) + { + $this->scheme = $scheme; + $this->value = $value; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_scheme() + { + if ($this->scheme !== null) + { + return $this->scheme; + } + else + { + return null; + } + } + + function get_value() + { + if ($this->value !== null) + { + return $this->value; + } + else + { + return null; + } + } +} + +class SimplePie_Restriction +{ + var $relationship; + var $type; + var $value; + + // Constructor, used to input the data + function SimplePie_Restriction($relationship = null, $type = null, $value = null) + { + $this->relationship = $relationship; + $this->type = $type; + $this->value = $value; + } + + function __toString() + { + // There is no $this->data here + return md5(serialize($this)); + } + + function get_relationship() + { + if ($this->relationship !== null) + { + return $this->relationship; + } + else + { + return null; + } + } + + function get_type() + { + if ($this->type !== null) + { + return $this->type; + } + else + { + return null; + } + } + + function get_value() + { + if ($this->value !== null) + { + return $this->value; + } + else + { + return null; + } + } +} + +/** + * @todo Move to properly supporting RFC2616 (HTTP/1.1) + */ +class SimplePie_File +{ + var $url; + var $useragent; + var $success = true; + var $headers = array(); + var $body; + var $status_code; + var $redirects = 0; + var $error; + var $method = SIMPLEPIE_FILE_SOURCE_NONE; + + function SimplePie_File($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) + { + if (class_exists('idna_convert')) + { + $idn =& new idna_convert; + $parsed = SimplePie_Misc::parse_url($url); + $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); + } + $this->url = $url; + $this->useragent = $useragent; + if (preg_match('/^http(s)?:\/\//i', $url)) + { + if ($useragent === null) + { + $useragent = ini_get('user_agent'); + $this->useragent = $useragent; + } + if (!is_array($headers)) + { + $headers = array(); + } + if (!$force_fsockopen && function_exists('curl_exec')) + { + $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_CURL; + $fp = curl_init(); + $headers2 = array(); + foreach ($headers as $key => $value) + { + $headers2[] = "$key: $value"; + } + if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>=')) + { + curl_setopt($fp, CURLOPT_ENCODING, ''); + } + curl_setopt($fp, CURLOPT_URL, $url); + curl_setopt($fp, CURLOPT_HEADER, 1); + curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($fp, CURLOPT_TIMEOUT, $timeout); + curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout); + curl_setopt($fp, CURLOPT_REFERER, $url); + curl_setopt($fp, CURLOPT_USERAGENT, $useragent); + curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2); + if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>=')) + { + curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects); + } + + $this->headers = curl_exec($fp); + if (curl_errno($fp) === 23 || curl_errno($fp) === 61) + { + curl_setopt($fp, CURLOPT_ENCODING, 'none'); + $this->headers = curl_exec($fp); + } + if (curl_errno($fp)) + { + $this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp); + $this->success = false; + } + else + { + $info = curl_getinfo($fp); + curl_close($fp); + $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1); + $this->headers = array_pop($this->headers); + $parser =& new SimplePie_HTTP_Parser($this->headers); + if ($parser->parse()) + { + $this->headers = $parser->headers; + $this->body = $parser->body; + $this->status_code = $parser->status_code; + if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects) + { + $this->redirects++; + $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url); + return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen); + } + } + } + } + else + { + $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN; + $url_parts = parse_url($url); + if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') + { + $url_parts['host'] = "ssl://$url_parts[host]"; + $url_parts['port'] = 443; + } + if (!isset($url_parts['port'])) + { + $url_parts['port'] = 80; + } + $fp = @fsockopen($url_parts['host'], $url_parts['port'], $errno, $errstr, $timeout); + if (!$fp) + { + $this->error = 'fsockopen error: ' . $errstr; + $this->success = false; + } + else + { + stream_set_timeout($fp, $timeout); + if (isset($url_parts['path'])) + { + if (isset($url_parts['query'])) + { + $get = "$url_parts[path]?$url_parts[query]"; + } + else + { + $get = $url_parts['path']; + } + } + else + { + $get = '/'; + } + $out = "GET $get HTTP/1.0\r\n"; + $out .= "Host: $url_parts[host]\r\n"; + $out .= "User-Agent: $useragent\r\n"; + if (extension_loaded('zlib')) + { + $out .= "Accept-Encoding: x-gzip,gzip,deflate\r\n"; + } + + if (isset($url_parts['user']) && isset($url_parts['pass'])) + { + $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n"; + } + foreach ($headers as $key => $value) + { + $out .= "$key: $value\r\n"; + } + $out .= "Connection: Close\r\n\r\n"; + fwrite($fp, $out); + + $info = stream_get_meta_data($fp); + + $this->headers = ''; + while (!$info['eof'] && !$info['timed_out']) + { + $this->headers .= fread($fp, 1160); + $info = stream_get_meta_data($fp); + } + if (!$info['timed_out']) + { + $parser =& new SimplePie_HTTP_Parser($this->headers); + if ($parser->parse()) + { + $this->headers = $parser->headers; + $this->body = $parser->body; + $this->status_code = $parser->status_code; + if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects) + { + $this->redirects++; + $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url); + return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen); + } + if (isset($this->headers['content-encoding'])) + { + // Hey, we act dumb elsewhere, so let's do that here too + switch (strtolower(trim($this->headers['content-encoding'], "\x09\x0A\x0D\x20"))) + { + case 'gzip': + case 'x-gzip': + $decoder =& new SimplePie_gzdecode($this->body); + if (!$decoder->parse()) + { + $this->error = 'Unable to decode HTTP "gzip" stream'; + $this->success = false; + } + else + { + $this->body = $decoder->data; + } + break; + + case 'deflate': + if (($body = gzuncompress($this->body)) === false) + { + if (($body = gzinflate($this->body)) === false) + { + $this->error = 'Unable to decode HTTP "deflate" stream'; + $this->success = false; + } + } + $this->body = $body; + break; + + default: + $this->error = 'Unknown content coding'; + $this->success = false; + } + } + } + } + else + { + $this->error = 'fsocket timed out'; + $this->success = false; + } + fclose($fp); + } + } + } + else + { + $this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS; + if (!$this->body = file_get_contents($url)) + { + $this->error = 'file_get_contents could not read the file'; + $this->success = false; + } + } + } +} + +/** + * HTTP Response Parser + * + * @package SimplePie + */ +class SimplePie_HTTP_Parser +{ + /** + * HTTP Version + * + * @access public + * @var float + */ + var $http_version = 0.0; + + /** + * Status code + * + * @access public + * @var int + */ + var $status_code = 0; + + /** + * Reason phrase + * + * @access public + * @var string + */ + var $reason = ''; + + /** + * Key/value pairs of the headers + * + * @access public + * @var array + */ + var $headers = array(); + + /** + * Body of the response + * + * @access public + * @var string + */ + var $body = ''; + + /** + * Current state of the state machine + * + * @access private + * @var string + */ + var $state = 'http_version'; + + /** + * Input data + * + * @access private + * @var string + */ + var $data = ''; + + /** + * Input data length (to avoid calling strlen() everytime this is needed) + * + * @access private + * @var int + */ + var $data_length = 0; + + /** + * Current position of the pointer + * + * @var int + * @access private + */ + var $position = 0; + + /** + * Name of the hedaer currently being parsed + * + * @access private + * @var string + */ + var $name = ''; + + /** + * Value of the hedaer currently being parsed + * + * @access private + * @var string + */ + var $value = ''; + + /** + * Create an instance of the class with the input data + * + * @access public + * @param string $data Input data + */ + function SimplePie_HTTP_Parser($data) + { + $this->data = $data; + $this->data_length = strlen($this->data); + } + + /** + * Parse the input data + * + * @access public + * @return bool true on success, false on failure + */ + function parse() + { + while ($this->state && $this->state !== 'emit' && $this->has_data()) + { + $state = $this->state; + $this->$state(); + } + $this->data = ''; + if ($this->state === 'emit' || $this->state === 'body') + { + return true; + } + else + { + $this->http_version = ''; + $this->status_code = ''; + $this->reason = ''; + $this->headers = array(); + $this->body = ''; + return false; + } + } + + /** + * Check whether there is data beyond the pointer + * + * @access private + * @return bool true if there is further data, false if not + */ + function has_data() + { + return (bool) ($this->position < $this->data_length); + } + + /** + * See if the next character is LWS + * + * @access private + * @return bool true if the next character is LWS, false if not + */ + function is_linear_whitespace() + { + return (bool) ($this->data[$this->position] === "\x09" + || $this->data[$this->position] === "\x20" + || ($this->data[$this->position] === "\x0A" + && isset($this->data[$this->position + 1]) + && ($this->data[$this->position + 1] === "\x09" || $this->data[$this->position + 1] === "\x20"))); + } + + /** + * Parse the HTTP version + * + * @access private + */ + function http_version() + { + if (strpos($this->data, "\x0A") !== false && strtoupper(substr($this->data, 0, 5)) === 'HTTP/') + { + $len = strspn($this->data, '0123456789.', 5); + $this->http_version = substr($this->data, 5, $len); + $this->position += 5 + $len; + if (substr_count($this->http_version, '.') <= 1) + { + $this->http_version = (float) $this->http_version; + $this->position += strspn($this->data, "\x09\x20", $this->position); + $this->state = 'status'; + } + else + { + $this->state = false; + } + } + else + { + $this->state = false; + } + } + + /** + * Parse the status code + * + * @access private + */ + function status() + { + if ($len = strspn($this->data, '0123456789', $this->position)) + { + $this->status_code = (int) substr($this->data, $this->position, $len); + $this->position += $len; + $this->state = 'reason'; + } + else + { + $this->state = false; + } + } + + /** + * Parse the reason phrase + * + * @access private + */ + function reason() + { + $len = strcspn($this->data, "\x0A", $this->position); + $this->reason = trim(substr($this->data, $this->position, $len), "\x09\x0D\x20"); + $this->position += $len + 1; + $this->state = 'new_line'; + } + + /** + * Deal with a new line, shifting data around as needed + * + * @access private + */ + function new_line() + { + $this->value = trim($this->value, "\x0D\x20"); + if ($this->name !== '' && $this->value !== '') + { + $this->name = strtolower($this->name); + if (isset($this->headers[$this->name])) + { + $this->headers[$this->name] .= ', ' . $this->value; + } + else + { + $this->headers[$this->name] = $this->value; + } + } + $this->name = ''; + $this->value = ''; + if (substr($this->data[$this->position], 0, 2) === "\x0D\x0A") + { + $this->position += 2; + $this->state = 'body'; + } + elseif ($this->data[$this->position] === "\x0A") + { + $this->position++; + $this->state = 'body'; + } + else + { + $this->state = 'name'; + } + } + + /** + * Parse a header name + * + * @access private + */ + function name() + { + $len = strcspn($this->data, "\x0A:", $this->position); + if (isset($this->data[$this->position + $len])) + { + if ($this->data[$this->position + $len] === "\x0A") + { + $this->position += $len; + $this->state = 'new_line'; + } + else + { + $this->name = substr($this->data, $this->position, $len); + $this->position += $len + 1; + $this->state = 'value'; + } + } + else + { + $this->state = false; + } + } + + /** + * Parse LWS, replacing consecutive LWS characters with a single space + * + * @access private + */ + function linear_whitespace() + { + do + { + if (substr($this->data, $this->position, 2) === "\x0D\x0A") + { + $this->position += 2; + } + elseif ($this->data[$this->position] === "\x0A") + { + $this->position++; + } + $this->position += strspn($this->data, "\x09\x20", $this->position); + } while ($this->has_data() && $this->is_linear_whitespace()); + $this->value .= "\x20"; + } + + /** + * See what state to move to while within non-quoted header values + * + * @access private + */ + function value() + { + if ($this->is_linear_whitespace()) + { + $this->linear_whitespace(); + } + else + { + switch ($this->data[$this->position]) + { + case '"': + $this->position++; + $this->state = 'quote'; + break; + + case "\x0A": + $this->position++; + $this->state = 'new_line'; + break; + + default: + $this->state = 'value_char'; + break; + } + } + } + + /** + * Parse a header value while outside quotes + * + * @access private + */ + function value_char() + { + $len = strcspn($this->data, "\x09\x20\x0A\"", $this->position); + $this->value .= substr($this->data, $this->position, $len); + $this->position += $len; + $this->state = 'value'; + } + + /** + * See what state to move to while within quoted header values + * + * @access private + */ + function quote() + { + if ($this->is_linear_whitespace()) + { + $this->linear_whitespace(); + } + else + { + switch ($this->data[$this->position]) + { + case '"': + $this->position++; + $this->state = 'value'; + break; + + case "\x0A": + $this->position++; + $this->state = 'new_line'; + break; + + case '\\': + $this->position++; + $this->state = 'quote_escaped'; + break; + + default: + $this->state = 'quote_char'; + break; + } + } + } + + /** + * Parse a header value while within quotes + * + * @access private + */ + function quote_char() + { + $len = strcspn($this->data, "\x09\x20\x0A\"\\", $this->position); + $this->value .= substr($this->data, $this->position, $len); + $this->position += $len; + $this->state = 'value'; + } + + /** + * Parse an escaped character within quotes + * + * @access private + */ + function quote_escaped() + { + $this->value .= $this->data[$this->position]; + $this->position++; + $this->state = 'quote'; + } + + /** + * Parse the body + * + * @access private + */ + function body() + { + $this->body = substr($this->data, $this->position); + $this->state = 'emit'; + } +} + +/** + * gzdecode + * + * @package SimplePie + */ +class SimplePie_gzdecode +{ + /** + * Compressed data + * + * @access private + * @see gzdecode::$data + */ + var $compressed_data; + + /** + * Size of compressed data + * + * @access private + */ + var $compressed_size; + + /** + * Minimum size of a valid gzip string + * + * @access private + */ + var $min_compressed_size = 18; + + /** + * Current position of pointer + * + * @access private + */ + var $position = 0; + + /** + * Flags (FLG) + * + * @access private + */ + var $flags; + + /** + * Uncompressed data + * + * @access public + * @see gzdecode::$compressed_data + */ + var $data; + + /** + * Modified time + * + * @access public + */ + var $MTIME; + + /** + * Extra Flags + * + * @access public + */ + var $XFL; + + /** + * Operating System + * + * @access public + */ + var $OS; + + /** + * Subfield ID 1 + * + * @access public + * @see gzdecode::$extra_field + * @see gzdecode::$SI2 + */ + var $SI1; + + /** + * Subfield ID 2 + * + * @access public + * @see gzdecode::$extra_field + * @see gzdecode::$SI1 + */ + var $SI2; + + /** + * Extra field content + * + * @access public + * @see gzdecode::$SI1 + * @see gzdecode::$SI2 + */ + var $extra_field; + + /** + * Original filename + * + * @access public + */ + var $filename; + + /** + * Human readable comment + * + * @access public + */ + var $comment; + + /** + * Don't allow anything to be set + * + * @access public + */ + function __set($name, $value) + { + trigger_error("Cannot write property $name", E_USER_ERROR); + } + + /** + * Set the compressed string and related properties + * + * @access public + */ + function SimplePie_gzdecode($data) + { + $this->compressed_data = $data; + $this->compressed_size = strlen($data); + } + + /** + * Decode the GZIP stream + * + * @access public + */ + function parse() + { + if ($this->compressed_size >= $this->min_compressed_size) + { + // Check ID1, ID2, and CM + if (substr($this->compressed_data, 0, 3) !== "\x1F\x8B\x08") + { + return false; + } + + // Get the FLG (FLaGs) + $this->flags = ord($this->compressed_data[3]); + + // FLG bits above (1 << 4) are reserved + if ($this->flags > 0x1F) + { + return false; + } + + // Advance the pointer after the above + $this->position += 4; + + // MTIME + $mtime = substr($this->compressed_data, $this->position, 4); + // Reverse the string if we're on a big-endian arch because l is the only signed long and is machine endianness + if (current(unpack('S', "\x00\x01")) === 1) + { + $mtime = strrev($mtime); + } + $this->MTIME = current(unpack('l', $mtime)); + $this->position += 4; + + // Get the XFL (eXtra FLags) + $this->XFL = ord($this->compressed_data[$this->position++]); + + // Get the OS (Operating System) + $this->OS = ord($this->compressed_data[$this->position++]); + + // Parse the FEXTRA + if ($this->flags & 4) + { + // Read subfield IDs + $this->SI1 = $this->compressed_data[$this->position++]; + $this->SI2 = $this->compressed_data[$this->position++]; + + // SI2 set to zero is reserved for future use + if ($this->SI2 === "\x00") + { + return false; + } + + // Get the length of the extra field + $len = current(unpack('v', substr($this->compressed_data, $this->position, 2))); + $position += 2; + + // Check the length of the string is still valid + $this->min_compressed_size += $len + 4; + if ($this->compressed_size >= $this->min_compressed_size) + { + // Set the extra field to the given data + $this->extra_field = substr($this->compressed_data, $this->position, $len); + $this->position += $len; + } + else + { + return false; + } + } + + // Parse the FNAME + if ($this->flags & 8) + { + // Get the length of the filename + $len = strcspn($this->compressed_data, "\x00", $this->position); + + // Check the length of the string is still valid + $this->min_compressed_size += $len + 1; + if ($this->compressed_size >= $this->min_compressed_size) + { + // Set the original filename to the given string + $this->filename = substr($this->compressed_data, $this->position, $len); + $this->position += $len + 1; + } + else + { + return false; + } + } + + // Parse the FCOMMENT + if ($this->flags & 16) + { + // Get the length of the comment + $len = strcspn($this->compressed_data, "\x00", $this->position); + + // Check the length of the string is still valid + $this->min_compressed_size += $len + 1; + if ($this->compressed_size >= $this->min_compressed_size) + { + // Set the original comment to the given string + $this->comment = substr($this->compressed_data, $this->position, $len); + $this->position += $len + 1; + } + else + { + return false; + } + } + + // Parse the FHCRC + if ($this->flags & 2) + { + // Check the length of the string is still valid + $this->min_compressed_size += $len + 2; + if ($this->compressed_size >= $this->min_compressed_size) + { + // Read the CRC + $crc = current(unpack('v', substr($this->compressed_data, $this->position, 2))); + + // Check the CRC matches + if ((crc32(substr($this->compressed_data, 0, $this->position)) & 0xFFFF) === $crc) + { + $this->position += 2; + } + else + { + return false; + } + } + else + { + return false; + } + } + + // Decompress the actual data + if (($this->data = gzinflate(substr($this->compressed_data, $this->position, -8))) === false) + { + return false; + } + else + { + $this->position = $this->compressed_size - 8; + } + + // Check CRC of data + $crc = current(unpack('V', substr($this->compressed_data, $this->position, 4))); + $this->position += 4; + /*if (extension_loaded('hash') && sprintf('%u', current(unpack('V', hash('crc32b', $this->data)))) !== sprintf('%u', $crc)) + { + return false; + }*/ + + // Check ISIZE of data + $isize = current(unpack('V', substr($this->compressed_data, $this->position, 4))); + $this->position += 4; + if (sprintf('%u', strlen($this->data) & 0xFFFFFFFF) !== sprintf('%u', $isize)) + { + return false; + } + + // Wow, against all odds, we've actually got a valid gzip string + return true; + } + else + { + return false; + } + } +} + +class SimplePie_Cache +{ + /** + * Don't call the constructor. Please. + * + * @access private + */ + function SimplePie_Cache() + { + trigger_error('Please call SimplePie_Cache::create() instead of the constructor', E_USER_ERROR); + } + + /** + * Create a new SimplePie_Cache object + * + * @static + * @access public + */ + function create($location, $filename, $extension) + { + $location_iri =& new SimplePie_IRI($location); + switch ($location_iri->get_scheme()) + { + case 'mysql': + if (extension_loaded('mysql')) + { + return new SimplePie_Cache_MySQL($location_iri, $filename, $extension); + } + break; + + default: + return new SimplePie_Cache_File($location, $filename, $extension); + } + } +} + +class SimplePie_Cache_File +{ + var $location; + var $filename; + var $extension; + var $name; + + function SimplePie_Cache_File($location, $filename, $extension) + { + $this->location = $location; + $this->filename = $filename; + $this->extension = $extension; + $this->name = "$this->location/$this->filename.$this->extension"; + } + + function save($data) + { + if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location)) + { + if (is_a($data, 'SimplePie')) + { + $data = $data->data; + } + + $data = serialize($data); + + if (function_exists('file_put_contents')) + { + return (bool) file_put_contents($this->name, $data); + } + else + { + $fp = fopen($this->name, 'wb'); + if ($fp) + { + fwrite($fp, $data); + fclose($fp); + return true; + } + } + } + return false; + } + + function load() + { + if (file_exists($this->name) && is_readable($this->name)) + { + return unserialize(file_get_contents($this->name)); + } + return false; + } + + function mtime() + { + if (file_exists($this->name)) + { + return filemtime($this->name); + } + return false; + } + + function touch() + { + if (file_exists($this->name)) + { + return touch($this->name); + } + return false; + } + + function unlink() + { + if (file_exists($this->name)) + { + return unlink($this->name); + } + return false; + } +} + +class SimplePie_Cache_DB +{ + function prepare_simplepie_object_for_cache($data) + { + $items = $data->get_items(); + $items_by_id = array(); + + if (!empty($items)) + { + foreach ($items as $item) + { + $items_by_id[$item->get_id()] = $item; + } + + if (count($items_by_id) !== count($items)) + { + $items_by_id = array(); + foreach ($items as $item) + { + $items_by_id[$item->get_id(true)] = $item; + } + } + + if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0])) + { + $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]; + } + elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0])) + { + $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]; + } + elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0])) + { + $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]; + } + elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0])) + { + $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]; + } + else + { + $channel = null; + } + + if ($channel !== null) + { + if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'])) + { + unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']); + } + if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry'])) + { + unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']); + } + if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item'])) + { + unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']); + } + if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item'])) + { + unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']); + } + if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item'])) + { + unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']); + } + } + if (isset($data->data['items'])) + { + unset($data->data['items']); + } + if (isset($data->data['ordered_items'])) + { + unset($data->data['ordered_items']); + } + } + return array(serialize($data->data), $items_by_id); + } +} + +class SimplePie_Cache_MySQL extends SimplePie_Cache_DB +{ + var $mysql; + var $options; + var $id; + + function SimplePie_Cache_MySQL($mysql_location, $name, $extension) + { + $host = $mysql_location->get_host(); + if (SimplePie_Misc::stripos($host, 'unix(') === 0 && substr($host, -1) === ')') + { + $server = ':' . substr($host, 5, -1); + } + else + { + $server = $host; + if ($mysql_location->get_port() !== null) + { + $server .= ':' . $mysql_location->get_port(); + } + } + + if (strpos($mysql_location->get_userinfo(), ':') !== false) + { + list($username, $password) = explode(':', $mysql_location->get_userinfo(), 2); + } + else + { + $username = $mysql_location->get_userinfo(); + $password = null; + } + + if ($this->mysql = mysql_connect($server, $username, $password)) + { + $this->id = $name . $extension; + $this->options = SimplePie_Misc::parse_str($mysql_location->get_query()); + if (!isset($this->options['prefix'][0])) + { + $this->options['prefix'][0] = ''; + } + + if (mysql_select_db(ltrim($mysql_location->get_path(), '/')) + && mysql_query('SET NAMES utf8') + && ($query = mysql_unbuffered_query('SHOW TABLES'))) + { + $db = array(); + while ($row = mysql_fetch_row($query)) + { + $db[] = $row[0]; + } + + if (!in_array($this->options['prefix'][0] . 'cache_data', $db)) + { + if (!mysql_query('CREATE TABLE `' . $this->options['prefix'][0] . 'cache_data` (`id` TEXT CHARACTER SET utf8 NOT NULL, `items` SMALLINT NOT NULL DEFAULT 0, `data` BLOB NOT NULL, `mtime` INT UNSIGNED NOT NULL, UNIQUE (`id`(125)))')) + { + $this->mysql = null; + } + } + + if (!in_array($this->options['prefix'][0] . 'items', $db)) + { + if (!mysql_query('CREATE TABLE `' . $this->options['prefix'][0] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` TEXT CHARACTER SET utf8 NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))')) + { + $this->mysql = null; + } + } + } + else + { + $this->mysql = null; + } + } + } + + function save($data) + { + if ($this->mysql) + { + $feed_id = "'" . mysql_real_escape_string($this->id) . "'"; + + if (is_a($data, 'SimplePie')) + { + if (SIMPLEPIE_PHP5) + { + // This keyword needs to defy coding standards for PHP4 compatibility + $data = clone($data); + } + + $prepared = $this->prepare_simplepie_object_for_cache($data); + + if ($query = mysql_query('SELECT `id` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = ' . $feed_id, $this->mysql)) + { + if (mysql_num_rows($query)) + { + $items = count($prepared[1]); + if ($items) + { + $sql = 'UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `items` = ' . $items . ', `data` = \'' . mysql_real_escape_string($prepared[0]) . '\', `mtime` = ' . time() . ' WHERE `id` = ' . $feed_id; + } + else + { + $sql = 'UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `data` = \'' . mysql_real_escape_string($prepared[0]) . '\', `mtime` = ' . time() . ' WHERE `id` = ' . $feed_id; + } + + if (!mysql_query($sql, $this->mysql)) + { + return false; + } + } + elseif (!mysql_query('INSERT INTO `' . $this->options['prefix'][0] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(' . $feed_id . ', ' . count($prepared[1]) . ', \'' . mysql_real_escape_string($prepared[0]) . '\', ' . time() . ')', $this->mysql)) + { + return false; + } + + $ids = array_keys($prepared[1]); + if (!empty($ids)) + { + foreach ($ids as $id) + { + $database_ids[] = mysql_real_escape_string($id); + } + + if ($query = mysql_unbuffered_query('SELECT `id` FROM `' . $this->options['prefix'][0] . 'items` WHERE `id` = \'' . implode('\' OR `id` = \'', $database_ids) . '\' AND `feed_id` = ' . $feed_id, $this->mysql)) + { + $existing_ids = array(); + while ($row = mysql_fetch_row($query)) + { + $existing_ids[] = $row[0]; + } + + $new_ids = array_diff($ids, $existing_ids); + + foreach ($new_ids as $new_id) + { + if (!($date = $prepared[1][$new_id]->get_date('U'))) + { + $date = time(); + } + + if (!mysql_query('INSERT INTO `' . $this->options['prefix'][0] . 'items` (`feed_id`, `id`, `data`, `posted`) VALUES(' . $feed_id . ', \'' . mysql_real_escape_string($new_id) . '\', \'' . mysql_real_escape_string(serialize($prepared[1][$new_id]->data)) . '\', ' . $date . ')', $this->mysql)) + { + return false; + } + } + return true; + } + } + else + { + return true; + } + } + } + elseif ($query = mysql_query('SELECT `id` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = ' . $feed_id, $this->mysql)) + { + if (mysql_num_rows($query)) + { + if (mysql_query('UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `items` = 0, `data` = \'' . mysql_real_escape_string(serialize($data)) . '\', `mtime` = ' . time() . ' WHERE `id` = ' . $feed_id, $this->mysql)) + { + return true; + } + } + elseif (mysql_query('INSERT INTO `' . $this->options['prefix'][0] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(\'' . mysql_real_escape_string($this->id) . '\', 0, \'' . mysql_real_escape_string(serialize($data)) . '\', ' . time() . ')', $this->mysql)) + { + return true; + } + } + } + return false; + } + + function load() + { + if ($this->mysql && ($query = mysql_query('SELECT `items`, `data` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && ($row = mysql_fetch_row($query))) + { + $data = unserialize($row[1]); + + if (isset($this->options['items'][0])) + { + $items = (int) $this->options['items'][0]; + } + else + { + $items = (int) $row[0]; + } + + if ($items !== 0) + { + if (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0])) + { + $feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]; + } + elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0])) + { + $feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]; + } + elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0])) + { + $feed =& $data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]; + } + elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0])) + { + $feed =& $data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]; + } + else + { + $feed = null; + } + + if ($feed !== null) + { + $sql = 'SELECT `data` FROM `' . $this->options['prefix'][0] . 'items` WHERE `feed_id` = \'' . mysql_real_escape_string($this->id) . '\' ORDER BY `posted` DESC'; + if ($items > 0) + { + $sql .= ' LIMIT ' . $items; + } + + if ($query = mysql_unbuffered_query($sql, $this->mysql)) + { + while ($row = mysql_fetch_row($query)) + { + $feed['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'][] = unserialize($row[0]); + } + } + else + { + return false; + } + } + } + return $data; + } + return false; + } + + function mtime() + { + if ($this->mysql && ($query = mysql_query('SELECT `mtime` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && ($row = mysql_fetch_row($query))) + { + return $row[0]; + } + else + { + return false; + } + } + + function touch() + { + if ($this->mysql && ($query = mysql_query('UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `mtime` = ' . time() . ' WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && mysql_affected_rows($this->mysql)) + { + return true; + } + else + { + return false; + } + } + + function unlink() + { + if ($this->mysql && ($query = mysql_query('DELETE FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && ($query2 = mysql_query('DELETE FROM `' . $this->options['prefix'][0] . 'items` WHERE `feed_id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql))) + { + return true; + } + else + { + return false; + } + } +} + +class SimplePie_Misc +{ + function time_hms($seconds) + { + $time = ''; + + $hours = floor($seconds / 3600); + $remainder = $seconds % 3600; + if ($hours > 0) + { + $time .= $hours.':'; + } + + $minutes = floor($remainder / 60); + $seconds = $remainder % 60; + if ($minutes < 10 && $hours > 0) + { + $minutes = '0' . $minutes; + } + if ($seconds < 10) + { + $seconds = '0' . $seconds; + } + + $time .= $minutes.':'; + $time .= $seconds; + + return $time; + } + + function absolutize_url($relative, $base) + { + $iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative); + return $iri->get_iri(); + } + + function remove_dot_segments($input) + { + $output = ''; + while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..') + { + // A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise, + if (strpos($input, '../') === 0) + { + $input = substr($input, 3); + } + elseif (strpos($input, './') === 0) + { + $input = substr($input, 2); + } + // B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise, + elseif (strpos($input, '/./') === 0) + { + $input = substr_replace($input, '/', 0, 3); + } + elseif ($input === '/.') + { + $input = '/'; + } + // C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise, + elseif (strpos($input, '/../') === 0) + { + $input = substr_replace($input, '/', 0, 4); + $output = substr_replace($output, '', strrpos($output, '/')); + } + elseif ($input === '/..') + { + $input = '/'; + $output = substr_replace($output, '', strrpos($output, '/')); + } + // D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise, + elseif ($input === '.' || $input === '..') + { + $input = ''; + } + // E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer + elseif (($pos = strpos($input, '/', 1)) !== false) + { + $output .= substr($input, 0, $pos); + $input = substr_replace($input, '', 0, $pos); + } + else + { + $output .= $input; + $input = ''; + } + } + return $output . $input; + } + + function get_element($realname, $string) + { + $return = array(); + $name = preg_quote($realname, '/'); + if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)) + { + for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++) + { + $return[$i]['tag'] = $realname; + $return[$i]['full'] = $matches[$i][0][0]; + $return[$i]['offset'] = $matches[$i][0][1]; + if (strlen($matches[$i][3][0]) <= 2) + { + $return[$i]['self_closing'] = true; + } + else + { + $return[$i]['self_closing'] = false; + $return[$i]['content'] = $matches[$i][4][0]; + } + $return[$i]['attribs'] = array(); + if (isset($matches[$i][2][0]) && preg_match_all('/[\x09\x0A\x0B\x0C\x0D\x20]+([^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*)(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"([^"]*)"|\'([^\']*)\'|([^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?/', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER)) + { + for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++) + { + if (count($attribs[$j]) === 2) + { + $attribs[$j][2] = $attribs[$j][1]; + } + $return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]), 'UTF-8'); + } + } + } + } + return $return; + } + + function element_implode($element) + { + $full = "<$element[tag]"; + foreach ($element['attribs'] as $key => $value) + { + $key = strtolower($key); + $full .= " $key=\"" . htmlspecialchars($value['data']) . '"'; + } + if ($element['self_closing']) + { + $full .= ' />'; + } + else + { + $full .= ">$element[content]</$element[tag]>"; + } + return $full; + } + + function error($message, $level, $file, $line) + { + if ((ini_get('error_reporting') & $level) > 0) + { + switch ($level) + { + case E_USER_ERROR: + $note = 'PHP Error'; + break; + case E_USER_WARNING: + $note = 'PHP Warning'; + break; + case E_USER_NOTICE: + $note = 'PHP Notice'; + break; + default: + $note = 'Unknown Error'; + break; + } + + $log_error = true; + if (!function_exists('error_log')) + { + $log_error = false; + } + + $log_file = @ini_get('error_log'); + if (!empty($log_file) && ('syslog' != $log_file) && !@is_writable($log_file)) + { + $log_error = false; + } + + if ($log_error) + { + @error_log("$note: $message in $file on line $line", 0); + } + } + + return $message; + } + + /** + * If a file has been cached, retrieve and display it. + * + * This is most useful for caching images (get_favicon(), etc.), + * however it works for all cached files. This WILL NOT display ANY + * file/image/page/whatever, but rather only display what has already + * been cached by SimplePie. + * + * @access public + * @see SimplePie::get_favicon() + * @param str $identifier_url URL that is used to identify the content. + * This may or may not be the actual URL of the live content. + * @param str $cache_location Location of SimplePie's cache. Defaults + * to './cache'. + * @param str $cache_extension The file extension that the file was + * cached with. Defaults to 'spc'. + * @param str $cache_class Name of the cache-handling class being used + * in SimplePie. Defaults to 'SimplePie_Cache', and should be left + * as-is unless you've overloaded the class. + * @param str $cache_name_function Obsolete. Exists for backwards + * compatibility reasons only. + */ + function display_cached_file($identifier_url, $cache_location = './cache', $cache_extension = 'spc', $cache_class = 'SimplePie_Cache', $cache_name_function = 'md5') + { + $cache = call_user_func(array($cache_class, 'create'), $cache_location, $identifier_url, $cache_extension); + + if ($file = $cache->load()) + { + if (isset($file['headers']['content-type'])) + { + header('Content-type:' . $file['headers']['content-type']); + } + else + { + header('Content-type: application/octet-stream'); + } + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days + echo $file['body']; + exit; + } + + die('Cached file for ' . $identifier_url . ' cannot be found.'); + } + + function fix_protocol($url, $http = 1) + { + $url = SimplePie_Misc::normalize_url($url); + $parsed = SimplePie_Misc::parse_url($url); + if ($parsed['scheme'] !== '' && $parsed['scheme'] !== 'http' && $parsed['scheme'] !== 'https') + { + return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http); + } + + if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url)) + { + return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http); + } + + if ($http === 2 && $parsed['scheme'] !== '') + { + return "feed:$url"; + } + elseif ($http === 3 && strtolower($parsed['scheme']) === 'http') + { + return substr_replace($url, 'podcast', 0, 4); + } + elseif ($http === 4 && strtolower($parsed['scheme']) === 'http') + { + return substr_replace($url, 'itpc', 0, 4); + } + else + { + return $url; + } + } + + function parse_url($url) + { + $iri =& new SimplePie_IRI($url); + return array( + 'scheme' => (string) $iri->get_scheme(), + 'authority' => (string) $iri->get_authority(), + 'path' => (string) $iri->get_path(), + 'query' => (string) $iri->get_query(), + 'fragment' => (string) $iri->get_fragment() + ); + } + + function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '') + { + $iri =& new SimplePie_IRI(''); + $iri->set_scheme($scheme); + $iri->set_authority($authority); + $iri->set_path($path); + $iri->set_query($query); + $iri->set_fragment($fragment); + return $iri->get_iri(); + } + + function normalize_url($url) + { + $iri =& new SimplePie_IRI($url); + return $iri->get_iri(); + } + + function percent_encoding_normalization($match) + { + $integer = hexdec($match[1]); + if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer === 0x2D || $integer === 0x2E || $integer === 0x5F || $integer === 0x7E) + { + return chr($integer); + } + else + { + return strtoupper($match[0]); + } + } + + /** + * Remove bad UTF-8 bytes + * + * PCRE Pattern to locate bad bytes in a UTF-8 string comes from W3C + * FAQ: Multilingual Forms (modified to include full ASCII range) + * + * @author Geoffrey Sneddon + * @see http://www.w3.org/International/questions/qa-forms-utf-8 + * @param string $str String to remove bad UTF-8 bytes from + * @return string UTF-8 string + */ + function utf8_bad_replace($str) + { + if (function_exists('iconv') && ($return = @iconv('UTF-8', 'UTF-8//IGNORE', $str))) + { + return $return; + } + elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($str, 'UTF-8', 'UTF-8'))) + { + return $return; + } + elseif (preg_match_all('/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})+/', $str, $matches)) + { + return implode("\xEF\xBF\xBD", $matches[0]); + } + elseif ($str !== '') + { + return "\xEF\xBF\xBD"; + } + else + { + return ''; + } + } + + /** + * Converts a Windows-1252 encoded string to a UTF-8 encoded string + * + * @static + * @access public + * @param string $string Windows-1252 encoded string + * @return string UTF-8 encoded string + */ + function windows_1252_to_utf8($string) + { + static $convert_table = array("\x80" => "\xE2\x82\xAC", "\x81" => "\xEF\xBF\xBD", "\x82" => "\xE2\x80\x9A", "\x83" => "\xC6\x92", "\x84" => "\xE2\x80\x9E", "\x85" => "\xE2\x80\xA6", "\x86" => "\xE2\x80\xA0", "\x87" => "\xE2\x80\xA1", "\x88" => "\xCB\x86", "\x89" => "\xE2\x80\xB0", "\x8A" => "\xC5\xA0", "\x8B" => "\xE2\x80\xB9", "\x8C" => "\xC5\x92", "\x8D" => "\xEF\xBF\xBD", "\x8E" => "\xC5\xBD", "\x8F" => "\xEF\xBF\xBD", "\x90" => "\xEF\xBF\xBD", "\x91" => "\xE2\x80\x98", "\x92" => "\xE2\x80\x99", "\x93" => "\xE2\x80\x9C", "\x94" => "\xE2\x80\x9D", "\x95" => "\xE2\x80\xA2", "\x96" => "\xE2\x80\x93", "\x97" => "\xE2\x80\x94", "\x98" => "\xCB\x9C", "\x99" => "\xE2\x84\xA2", "\x9A" => "\xC5\xA1", "\x9B" => "\xE2\x80\xBA", "\x9C" => "\xC5\x93", "\x9D" => "\xEF\xBF\xBD", "\x9E" => "\xC5\xBE", "\x9F" => "\xC5\xB8", "\xA0" => "\xC2\xA0", "\xA1" => "\xC2\xA1", "\xA2" => "\xC2\xA2", "\xA3" => "\xC2\xA3", "\xA4" => "\xC2\xA4", "\xA5" => "\xC2\xA5", "\xA6" => "\xC2\xA6", "\xA7" => "\xC2\xA7", "\xA8" => "\xC2\xA8", "\xA9" => "\xC2\xA9", "\xAA" => "\xC2\xAA", "\xAB" => "\xC2\xAB", "\xAC" => "\xC2\xAC", "\xAD" => "\xC2\xAD", "\xAE" => "\xC2\xAE", "\xAF" => "\xC2\xAF", "\xB0" => "\xC2\xB0", "\xB1" => "\xC2\xB1", "\xB2" => "\xC2\xB2", "\xB3" => "\xC2\xB3", "\xB4" => "\xC2\xB4", "\xB5" => "\xC2\xB5", "\xB6" => "\xC2\xB6", "\xB7" => "\xC2\xB7", "\xB8" => "\xC2\xB8", "\xB9" => "\xC2\xB9", "\xBA" => "\xC2\xBA", "\xBB" => "\xC2\xBB", "\xBC" => "\xC2\xBC", "\xBD" => "\xC2\xBD", "\xBE" => "\xC2\xBE", "\xBF" => "\xC2\xBF", "\xC0" => "\xC3\x80", "\xC1" => "\xC3\x81", "\xC2" => "\xC3\x82", "\xC3" => "\xC3\x83", "\xC4" => "\xC3\x84", "\xC5" => "\xC3\x85", "\xC6" => "\xC3\x86", "\xC7" => "\xC3\x87", "\xC8" => "\xC3\x88", "\xC9" => "\xC3\x89", "\xCA" => "\xC3\x8A", "\xCB" => "\xC3\x8B", "\xCC" => "\xC3\x8C", "\xCD" => "\xC3\x8D", "\xCE" => "\xC3\x8E", "\xCF" => "\xC3\x8F", "\xD0" => "\xC3\x90", "\xD1" => "\xC3\x91", "\xD2" => "\xC3\x92", "\xD3" => "\xC3\x93", "\xD4" => "\xC3\x94", "\xD5" => "\xC3\x95", "\xD6" => "\xC3\x96", "\xD7" => "\xC3\x97", "\xD8" => "\xC3\x98", "\xD9" => "\xC3\x99", "\xDA" => "\xC3\x9A", "\xDB" => "\xC3\x9B", "\xDC" => "\xC3\x9C", "\xDD" => "\xC3\x9D", "\xDE" => "\xC3\x9E", "\xDF" => "\xC3\x9F", "\xE0" => "\xC3\xA0", "\xE1" => "\xC3\xA1", "\xE2" => "\xC3\xA2", "\xE3" => "\xC3\xA3", "\xE4" => "\xC3\xA4", "\xE5" => "\xC3\xA5", "\xE6" => "\xC3\xA6", "\xE7" => "\xC3\xA7", "\xE8" => "\xC3\xA8", "\xE9" => "\xC3\xA9", "\xEA" => "\xC3\xAA", "\xEB" => "\xC3\xAB", "\xEC" => "\xC3\xAC", "\xED" => "\xC3\xAD", "\xEE" => "\xC3\xAE", "\xEF" => "\xC3\xAF", "\xF0" => "\xC3\xB0", "\xF1" => "\xC3\xB1", "\xF2" => "\xC3\xB2", "\xF3" => "\xC3\xB3", "\xF4" => "\xC3\xB4", "\xF5" => "\xC3\xB5", "\xF6" => "\xC3\xB6", "\xF7" => "\xC3\xB7", "\xF8" => "\xC3\xB8", "\xF9" => "\xC3\xB9", "\xFA" => "\xC3\xBA", "\xFB" => "\xC3\xBB", "\xFC" => "\xC3\xBC", "\xFD" => "\xC3\xBD", "\xFE" => "\xC3\xBE", "\xFF" => "\xC3\xBF"); + + return strtr($string, $convert_table); + } + + function change_encoding($data, $input, $output) + { + $input = SimplePie_Misc::encoding($input); + $output = SimplePie_Misc::encoding($output); + + // We fail to fail on non US-ASCII bytes + if ($input === 'US-ASCII') + { + static $non_ascii_octects = ''; + if (!$non_ascii_octects) + { + for ($i = 0x80; $i <= 0xFF; $i++) + { + $non_ascii_octects .= chr($i); + } + } + $data = substr($data, 0, strcspn($data, $non_ascii_octects)); + } + + // This is first, as behaviour of this is completely predictable + if ($input === 'Windows-1252' && $output === 'UTF-8') + { + return SimplePie_Misc::windows_1252_to_utf8($data); + } + // This is second, as behaviour of this varies only with PHP version (the middle part of this expression checks the encoding is supported). + elseif (function_exists('mb_convert_encoding') && @mb_convert_encoding("\x80", 'UTF-16BE', $input) !== "\x00\x80" && ($return = @mb_convert_encoding($data, $output, $input))) + { + return $return; + } + // This is last, as behaviour of this varies with OS userland and PHP version + elseif (function_exists('iconv') && ($return = @iconv($input, $output, $data))) + { + return $return; + } + // If we can't do anything, just fail + else + { + return false; + } + } + + function encoding($charset) + { + // Normalization from UTS #22 + switch (strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\1', $charset))) + { + case 'adobestandardencoding': + case 'csadobestandardencoding': + return 'Adobe-Standard-Encoding'; + + case 'adobesymbolencoding': + case 'cshppsmath': + return 'Adobe-Symbol-Encoding'; + + case 'ami1251': + case 'amiga1251': + return 'Amiga-1251'; + + case 'ansix31101983': + case 'csat5001983': + case 'csiso99naplps': + case 'isoir99': + case 'naplps': + return 'ANSI_X3.110-1983'; + + case 'arabic7': + case 'asmo449': + case 'csiso89asmo449': + case 'iso9036': + case 'isoir89': + return 'ASMO_449'; + + case 'big5': + case 'csbig5': + case 'xxbig5': + return 'Big5'; + + case 'big5hkscs': + return 'Big5-HKSCS'; + + case 'bocu1': + case 'csbocu1': + return 'BOCU-1'; + + case 'brf': + case 'csbrf': + return 'BRF'; + + case 'bs4730': + case 'csiso4unitedkingdom': + case 'gb': + case 'iso646gb': + case 'isoir4': + case 'uk': + return 'BS_4730'; + + case 'bsviewdata': + case 'csiso47bsviewdata': + case 'isoir47': + return 'BS_viewdata'; + + case 'cesu8': + case 'cscesu8': + return 'CESU-8'; + + case 'ca': + case 'csa71': + case 'csaz243419851': + case 'csiso121canadian1': + case 'iso646ca': + case 'isoir121': + return 'CSA_Z243.4-1985-1'; + + case 'csa72': + case 'csaz243419852': + case 'csiso122canadian2': + case 'iso646ca2': + case 'isoir122': + return 'CSA_Z243.4-1985-2'; + + case 'csaz24341985gr': + case 'csiso123csaz24341985gr': + case 'isoir123': + return 'CSA_Z243.4-1985-gr'; + + case 'csiso139csn369103': + case 'csn369103': + case 'isoir139': + return 'CSN_369103'; + + case 'csdecmcs': + case 'dec': + case 'decmcs': + return 'DEC-MCS'; + + case 'csiso21german': + case 'de': + case 'din66003': + case 'iso646de': + case 'isoir21': + return 'DIN_66003'; + + case 'csdkus': + case 'dkus': + return 'dk-us'; + + case 'csiso646danish': + case 'dk': + case 'ds2089': + case 'iso646dk': + return 'DS_2089'; + + case 'csibmebcdicatde': + case 'ebcdicatde': + return 'EBCDIC-AT-DE'; + + case 'csebcdicatdea': + case 'ebcdicatdea': + return 'EBCDIC-AT-DE-A'; + + case 'csebcdiccafr': + case 'ebcdiccafr': + return 'EBCDIC-CA-FR'; + + case 'csebcdicdkno': + case 'ebcdicdkno': + return 'EBCDIC-DK-NO'; + + case 'csebcdicdknoa': + case 'ebcdicdknoa': + return 'EBCDIC-DK-NO-A'; + + case 'csebcdices': + case 'ebcdices': + return 'EBCDIC-ES'; + + case 'csebcdicesa': + case 'ebcdicesa': + return 'EBCDIC-ES-A'; + + case 'csebcdicess': + case 'ebcdicess': + return 'EBCDIC-ES-S'; + + case 'csebcdicfise': + case 'ebcdicfise': + return 'EBCDIC-FI-SE'; + + case 'csebcdicfisea': + case 'ebcdicfisea': + return 'EBCDIC-FI-SE-A'; + + case 'csebcdicfr': + case 'ebcdicfr': + return 'EBCDIC-FR'; + + case 'csebcdicit': + case 'ebcdicit': + return 'EBCDIC-IT'; + + case 'csebcdicpt': + case 'ebcdicpt': + return 'EBCDIC-PT'; + + case 'csebcdicuk': + case 'ebcdicuk': + return 'EBCDIC-UK'; + + case 'csebcdicus': + case 'ebcdicus': + return 'EBCDIC-US'; + + case 'csiso111ecmacyrillic': + case 'ecmacyrillic': + case 'isoir111': + case 'koi8e': + return 'ECMA-cyrillic'; + + case 'csiso17spanish': + case 'es': + case 'iso646es': + case 'isoir17': + return 'ES'; + + case 'csiso85spanish2': + case 'es2': + case 'iso646es2': + case 'isoir85': + return 'ES2'; + + case 'cseucfixwidjapanese': + case 'extendedunixcodefixedwidthforjapanese': + return 'Extended_UNIX_Code_Fixed_Width_for_Japanese'; + + case 'cseucpkdfmtjapanese': + case 'eucjp': + case 'extendedunixcodepackedformatforjapanese': + return 'Extended_UNIX_Code_Packed_Format_for_Japanese'; + + case 'gb18030': + return 'GB18030'; + + case 'chinese': + case 'cp936': + case 'csgb2312': + case 'csiso58gb231280': + case 'gb2312': + case 'gb231280': + case 'gbk': + case 'isoir58': + case 'ms936': + case 'windows936': + return 'GBK'; + + case 'cn': + case 'csiso57gb1988': + case 'gb198880': + case 'iso646cn': + case 'isoir57': + return 'GB_1988-80'; + + case 'csiso153gost1976874': + case 'gost1976874': + case 'isoir153': + case 'stsev35888': + return 'GOST_19768-74'; + + case 'csiso150': + case 'csiso150greekccitt': + case 'greekccitt': + case 'isoir150': + return 'greek-ccitt'; + + case 'csiso88greek7': + case 'greek7': + case 'isoir88': + return 'greek7'; + + case 'csiso18greek7old': + case 'greek7old': + case 'isoir18': + return 'greek7-old'; + + case 'cshpdesktop': + case 'hpdesktop': + return 'HP-DeskTop'; + + case 'cshplegal': + case 'hplegal': + return 'HP-Legal'; + + case 'cshpmath8': + case 'hpmath8': + return 'HP-Math8'; + + case 'cshppifont': + case 'hppifont': + return 'HP-Pi-font'; + + case 'cshproman8': + case 'hproman8': + case 'r8': + case 'roman8': + return 'hp-roman8'; + + case 'hzgb2312': + return 'HZ-GB-2312'; + + case 'csibmsymbols': + case 'ibmsymbols': + return 'IBM-Symbols'; + + case 'csibmthai': + case 'ibmthai': + return 'IBM-Thai'; + + case 'ccsid858': + case 'cp858': + case 'ibm858': + case 'pcmultilingual850euro': + return 'IBM00858'; + + case 'ccsid924': + case 'cp924': + case 'ebcdiclatin9euro': + case 'ibm924': + return 'IBM00924'; + + case 'ccsid1140': + case 'cp1140': + case 'ebcdicus37euro': + case 'ibm1140': + return 'IBM01140'; + + case 'ccsid1141': + case 'cp1141': + case 'ebcdicde273euro': + case 'ibm1141': + return 'IBM01141'; + + case 'ccsid1142': + case 'cp1142': + case 'ebcdicdk277euro': + case 'ebcdicno277euro': + case 'ibm1142': + return 'IBM01142'; + + case 'ccsid1143': + case 'cp1143': + case 'ebcdicfi278euro': + case 'ebcdicse278euro': + case 'ibm1143': + return 'IBM01143'; + + case 'ccsid1144': + case 'cp1144': + case 'ebcdicit280euro': + case 'ibm1144': + return 'IBM01144'; + + case 'ccsid1145': + case 'cp1145': + case 'ebcdices284euro': + case 'ibm1145': + return 'IBM01145'; + + case 'ccsid1146': + case 'cp1146': + case 'ebcdicgb285euro': + case 'ibm1146': + return 'IBM01146'; + + case 'ccsid1147': + case 'cp1147': + case 'ebcdicfr297euro': + case 'ibm1147': + return 'IBM01147'; + + case 'ccsid1148': + case 'cp1148': + case 'ebcdicinternational500euro': + case 'ibm1148': + return 'IBM01148'; + + case 'ccsid1149': + case 'cp1149': + case 'ebcdicis871euro': + case 'ibm1149': + return 'IBM01149'; + + case 'cp37': + case 'csibm37': + case 'ebcdiccpca': + case 'ebcdiccpnl': + case 'ebcdiccpus': + case 'ebcdiccpwt': + case 'ibm37': + return 'IBM037'; + + case 'cp38': + case 'csibm38': + case 'ebcdicint': + case 'ibm38': + return 'IBM038'; + + case 'cp273': + case 'csibm273': + case 'ibm273': + return 'IBM273'; + + case 'cp274': + case 'csibm274': + case 'ebcdicbe': + case 'ibm274': + return 'IBM274'; + + case 'cp275': + case 'csibm275': + case 'ebcdicbr': + case 'ibm275': + return 'IBM275'; + + case 'csibm277': + case 'ebcdiccpdk': + case 'ebcdiccpno': + case 'ibm277': + return 'IBM277'; + + case 'cp278': + case 'csibm278': + case 'ebcdiccpfi': + case 'ebcdiccpse': + case 'ibm278': + return 'IBM278'; + + case 'cp280': + case 'csibm280': + case 'ebcdiccpit': + case 'ibm280': + return 'IBM280'; + + case 'cp281': + case 'csibm281': + case 'ebcdicjpe': + case 'ibm281': + return 'IBM281'; + + case 'cp284': + case 'csibm284': + case 'ebcdiccpes': + case 'ibm284': + return 'IBM284'; + + case 'cp285': + case 'csibm285': + case 'ebcdiccpgb': + case 'ibm285': + return 'IBM285'; + + case 'cp290': + case 'csibm290': + case 'ebcdicjpkana': + case 'ibm290': + return 'IBM290'; + + case 'cp297': + case 'csibm297': + case 'ebcdiccpfr': + case 'ibm297': + return 'IBM297'; + + case 'cp420': + case 'csibm420': + case 'ebcdiccpar1': + case 'ibm420': + return 'IBM420'; + + case 'cp423': + case 'csibm423': + case 'ebcdiccpgr': + case 'ibm423': + return 'IBM423'; + + case 'cp424': + case 'csibm424': + case 'ebcdiccphe': + case 'ibm424': + return 'IBM424'; + + case '437': + case 'cp437': + case 'cspc8codepage437': + case 'ibm437': + return 'IBM437'; + + case 'cp500': + case 'csibm500': + case 'ebcdiccpbe': + case 'ebcdiccpch': + case 'ibm500': + return 'IBM500'; + + case 'cp775': + case 'cspc775baltic': + case 'ibm775': + return 'IBM775'; + + case '850': + case 'cp850': + case 'cspc850multilingual': + case 'ibm850': + return 'IBM850'; + + case '851': + case 'cp851': + case 'csibm851': + case 'ibm851': + return 'IBM851'; + + case '852': + case 'cp852': + case 'cspcp852': + case 'ibm852': + return 'IBM852'; + + case '855': + case 'cp855': + case 'csibm855': + case 'ibm855': + return 'IBM855'; + + case '857': + case 'cp857': + case 'csibm857': + case 'ibm857': + return 'IBM857'; + + case '860': + case 'cp860': + case 'csibm860': + case 'ibm860': + return 'IBM860'; + + case '861': + case 'cp861': + case 'cpis': + case 'csibm861': + case 'ibm861': + return 'IBM861'; + + case '862': + case 'cp862': + case 'cspc862latinhebrew': + case 'ibm862': + return 'IBM862'; + + case '863': + case 'cp863': + case 'csibm863': + case 'ibm863': + return 'IBM863'; + + case 'cp864': + case 'csibm864': + case 'ibm864': + return 'IBM864'; + + case '865': + case 'cp865': + case 'csibm865': + case 'ibm865': + return 'IBM865'; + + case '866': + case 'cp866': + case 'csibm866': + case 'ibm866': + return 'IBM866'; + + case 'cp868': + case 'cpar': + case 'csibm868': + case 'ibm868': + return 'IBM868'; + + case '869': + case 'cp869': + case 'cpgr': + case 'csibm869': + case 'ibm869': + return 'IBM869'; + + case 'cp870': + case 'csibm870': + case 'ebcdiccproece': + case 'ebcdiccpyu': + case 'ibm870': + return 'IBM870'; + + case 'cp871': + case 'csibm871': + case 'ebcdiccpis': + case 'ibm871': + return 'IBM871'; + + case 'cp880': + case 'csibm880': + case 'ebcdiccyrillic': + case 'ibm880': + return 'IBM880'; + + case 'cp891': + case 'csibm891': + case 'ibm891': + return 'IBM891'; + + case 'cp903': + case 'csibm903': + case 'ibm903': + return 'IBM903'; + + case '904': + case 'cp904': + case 'csibbm904': + case 'ibm904': + return 'IBM904'; + + case 'cp905': + case 'csibm905': + case 'ebcdiccptr': + case 'ibm905': + return 'IBM905'; + + case 'cp918': + case 'csibm918': + case 'ebcdiccpar2': + case 'ibm918': + return 'IBM918'; + + case 'cp1026': + case 'csibm1026': + case 'ibm1026': + return 'IBM1026'; + + case 'ibm1047': + return 'IBM1047'; + + case 'csiso143iecp271': + case 'iecp271': + case 'isoir143': + return 'IEC_P27-1'; + + case 'csiso49inis': + case 'inis': + case 'isoir49': + return 'INIS'; + + case 'csiso50inis8': + case 'inis8': + case 'isoir50': + return 'INIS-8'; + + case 'csiso51iniscyrillic': + case 'iniscyrillic': + case 'isoir51': + return 'INIS-cyrillic'; + + case 'csinvariant': + case 'invariant': + return 'INVARIANT'; + + case 'iso2022cn': + return 'ISO-2022-CN'; + + case 'iso2022cnext': + return 'ISO-2022-CN-EXT'; + + case 'csiso2022jp': + case 'iso2022jp': + return 'ISO-2022-JP'; + + case 'csiso2022jp2': + case 'iso2022jp2': + return 'ISO-2022-JP-2'; + + case 'csiso2022kr': + case 'iso2022kr': + return 'ISO-2022-KR'; + + case 'cswindows30latin1': + case 'iso88591windows30latin1': + return 'ISO-8859-1-Windows-3.0-Latin-1'; + + case 'cswindows31latin1': + case 'iso88591windows31latin1': + return 'ISO-8859-1-Windows-3.1-Latin-1'; + + case 'csisolatin2': + case 'iso88592': + case 'iso885921987': + case 'isoir101': + case 'l2': + case 'latin2': + return 'ISO-8859-2'; + + case 'cswindows31latin2': + case 'iso88592windowslatin2': + return 'ISO-8859-2-Windows-Latin-2'; + + case 'csisolatin3': + case 'iso88593': + case 'iso885931988': + case 'isoir109': + case 'l3': + case 'latin3': + return 'ISO-8859-3'; + + case 'csisolatin4': + case 'iso88594': + case 'iso885941988': + case 'isoir110': + case 'l4': + case 'latin4': + return 'ISO-8859-4'; + + case 'csisolatincyrillic': + case 'cyrillic': + case 'iso88595': + case 'iso885951988': + case 'isoir144': + return 'ISO-8859-5'; + + case 'arabic': + case 'asmo708': + case 'csisolatinarabic': + case 'ecma114': + case 'iso88596': + case 'iso885961987': + case 'isoir127': + return 'ISO-8859-6'; + + case 'csiso88596e': + case 'iso88596e': + return 'ISO-8859-6-E'; + + case 'csiso88596i': + case 'iso88596i': + return 'ISO-8859-6-I'; + + case 'csisolatingreek': + case 'ecma118': + case 'elot928': + case 'greek': + case 'greek8': + case 'iso88597': + case 'iso885971987': + case 'isoir126': + return 'ISO-8859-7'; + + case 'csisolatinhebrew': + case 'hebrew': + case 'iso88598': + case 'iso885981988': + case 'isoir138': + return 'ISO-8859-8'; + + case 'csiso88598e': + case 'iso88598e': + return 'ISO-8859-8-E'; + + case 'csiso88598i': + case 'iso88598i': + return 'ISO-8859-8-I'; + + case 'cswindows31latin5': + case 'iso88599windowslatin5': + return 'ISO-8859-9-Windows-Latin-5'; + + case 'csisolatin6': + case 'iso885910': + case 'iso8859101992': + case 'isoir157': + case 'l6': + case 'latin6': + return 'ISO-8859-10'; + + case 'iso885913': + return 'ISO-8859-13'; + + case 'iso885914': + case 'iso8859141998': + case 'isoceltic': + case 'isoir199': + case 'l8': + case 'latin8': + return 'ISO-8859-14'; + + case 'iso885915': + case 'latin9': + return 'ISO-8859-15'; + + case 'iso885916': + case 'iso8859162001': + case 'isoir226': + case 'l10': + case 'latin10': + return 'ISO-8859-16'; + + case 'iso10646j1': + return 'ISO-10646-J-1'; + + case 'csunicode': + case 'iso10646ucs2': + return 'ISO-10646-UCS-2'; + + case 'csucs4': + case 'iso10646ucs4': + return 'ISO-10646-UCS-4'; + + case 'csunicodeascii': + case 'iso10646ucsbasic': + return 'ISO-10646-UCS-Basic'; + + case 'csunicodelatin1': + case 'iso10646': + case 'iso10646unicodelatin1': + return 'ISO-10646-Unicode-Latin1'; + + case 'csiso10646utf1': + case 'iso10646utf1': + return 'ISO-10646-UTF-1'; + + case 'csiso115481': + case 'iso115481': + case 'isotr115481': + return 'ISO-11548-1'; + + case 'csiso90': + case 'isoir90': + return 'iso-ir-90'; + + case 'csunicodeibm1261': + case 'isounicodeibm1261': + return 'ISO-Unicode-IBM-1261'; + + case 'csunicodeibm1264': + case 'isounicodeibm1264': + return 'ISO-Unicode-IBM-1264'; + + case 'csunicodeibm1265': + case 'isounicodeibm1265': + return 'ISO-Unicode-IBM-1265'; + + case 'csunicodeibm1268': + case 'isounicodeibm1268': + return 'ISO-Unicode-IBM-1268'; + + case 'csunicodeibm1276': + case 'isounicodeibm1276': + return 'ISO-Unicode-IBM-1276'; + + case 'csiso646basic1983': + case 'iso646basic1983': + case 'ref': + return 'ISO_646.basic:1983'; + + case 'csiso2intlrefversion': + case 'irv': + case 'iso646irv1983': + case 'isoir2': + return 'ISO_646.irv:1983'; + + case 'csiso2033': + case 'e13b': + case 'iso20331983': + case 'isoir98': + return 'ISO_2033-1983'; + + case 'csiso5427cyrillic': + case 'iso5427': + case 'isoir37': + return 'ISO_5427'; + + case 'iso5427cyrillic1981': + case 'iso54271981': + case 'isoir54': + return 'ISO_5427:1981'; + + case 'csiso5428greek': + case 'iso54281980': + case 'isoir55': + return 'ISO_5428:1980'; + + case 'csiso6937add': + case 'iso6937225': + case 'isoir152': + return 'ISO_6937-2-25'; + + case 'csisotextcomm': + case 'iso69372add': + case 'isoir142': + return 'ISO_6937-2-add'; + + case 'csiso8859supp': + case 'iso8859supp': + case 'isoir154': + case 'latin125': + return 'ISO_8859-supp'; + + case 'csiso10367box': + case 'iso10367box': + case 'isoir155': + return 'ISO_10367-box'; + + case 'csiso15italian': + case 'iso646it': + case 'isoir15': + case 'it': + return 'IT'; + + case 'csiso13jisc6220jp': + case 'isoir13': + case 'jisc62201969': + case 'jisc62201969jp': + case 'katakana': + case 'x2017': + return 'JIS_C6220-1969-jp'; + + case 'csiso14jisc6220ro': + case 'iso646jp': + case 'isoir14': + case 'jisc62201969ro': + case 'jp': + return 'JIS_C6220-1969-ro'; + + case 'csiso42jisc62261978': + case 'isoir42': + case 'jisc62261978': + return 'JIS_C6226-1978'; + + case 'csiso87jisx208': + case 'isoir87': + case 'jisc62261983': + case 'jisx2081983': + case 'x208': + return 'JIS_C6226-1983'; + + case 'csiso91jisc62291984a': + case 'isoir91': + case 'jisc62291984a': + case 'jpocra': + return 'JIS_C6229-1984-a'; + + case 'csiso92jisc62991984b': + case 'iso646jpocrb': + case 'isoir92': + case 'jisc62291984b': + case 'jpocrb': + return 'JIS_C6229-1984-b'; + + case 'csiso93jis62291984badd': + case 'isoir93': + case 'jisc62291984badd': + case 'jpocrbadd': + return 'JIS_C6229-1984-b-add'; + + case 'csiso94jis62291984hand': + case 'isoir94': + case 'jisc62291984hand': + case 'jpocrhand': + return 'JIS_C6229-1984-hand'; + + case 'csiso95jis62291984handadd': + case 'isoir95': + case 'jisc62291984handadd': + case 'jpocrhandadd': + return 'JIS_C6229-1984-hand-add'; + + case 'csiso96jisc62291984kana': + case 'isoir96': + case 'jisc62291984kana': + return 'JIS_C6229-1984-kana'; + + case 'csjisencoding': + case 'jisencoding': + return 'JIS_Encoding'; + + case 'cshalfwidthkatakana': + case 'jisx201': + case 'x201': + return 'JIS_X0201'; + + case 'csiso159jisx2121990': + case 'isoir159': + case 'jisx2121990': + case 'x212': + return 'JIS_X0212-1990'; + + case 'csiso141jusib1002': + case 'iso646yu': + case 'isoir141': + case 'js': + case 'jusib1002': + case 'yu': + return 'JUS_I.B1.002'; + + case 'csiso147macedonian': + case 'isoir147': + case 'jusib1003mac': + case 'macedonian': + return 'JUS_I.B1.003-mac'; + + case 'csiso146serbian': + case 'isoir146': + case 'jusib1003serb': + case 'serbian': + return 'JUS_I.B1.003-serb'; + + case 'koi7switched': + return 'KOI7-switched'; + + case 'cskoi8r': + case 'koi8r': + return 'KOI8-R'; + + case 'koi8u': + return 'KOI8-U'; + + case 'csksc5636': + case 'iso646kr': + case 'ksc5636': + return 'KSC5636'; + + case 'cskz1048': + case 'kz1048': + case 'rk1048': + case 'strk10482002': + return 'KZ-1048'; + + case 'csiso19latingreek': + case 'isoir19': + case 'latingreek': + return 'latin-greek'; + + case 'csiso27latingreek1': + case 'isoir27': + case 'latingreek1': + return 'Latin-greek-1'; + + case 'csiso158lap': + case 'isoir158': + case 'lap': + case 'latinlap': + return 'latin-lap'; + + case 'csmacintosh': + case 'mac': + case 'macintosh': + return 'macintosh'; + + case 'csmicrosoftpublishing': + case 'microsoftpublishing': + return 'Microsoft-Publishing'; + + case 'csmnem': + case 'mnem': + return 'MNEM'; + + case 'csmnemonic': + case 'mnemonic': + return 'MNEMONIC'; + + case 'csiso86hungarian': + case 'hu': + case 'iso646hu': + case 'isoir86': + case 'msz77953': + return 'MSZ_7795.3'; + + case 'csnatsdano': + case 'isoir91': + case 'natsdano': + return 'NATS-DANO'; + + case 'csnatsdanoadd': + case 'isoir92': + case 'natsdanoadd': + return 'NATS-DANO-ADD'; + + case 'csnatssefi': + case 'isoir81': + case 'natssefi': + return 'NATS-SEFI'; + + case 'csnatssefiadd': + case 'isoir82': + case 'natssefiadd': + return 'NATS-SEFI-ADD'; + + case 'csiso151cuba': + case 'cuba': + case 'iso646cu': + case 'isoir151': + case 'ncnc1081': + return 'NC_NC00-10:81'; + + case 'csiso69french': + case 'fr': + case 'iso646fr': + case 'isoir69': + case 'nfz62010': + return 'NF_Z_62-010'; + + case 'csiso25french': + case 'iso646fr1': + case 'isoir25': + case 'nfz620101973': + return 'NF_Z_62-010_(1973)'; + + case 'csiso60danishnorwegian': + case 'csiso60norwegian1': + case 'iso646no': + case 'isoir60': + case 'no': + case 'ns45511': + return 'NS_4551-1'; + + case 'csiso61norwegian2': + case 'iso646no2': + case 'isoir61': + case 'no2': + case 'ns45512': + return 'NS_4551-2'; + + case 'osdebcdicdf3irv': + return 'OSD_EBCDIC_DF03_IRV'; + + case 'osdebcdicdf41': + return 'OSD_EBCDIC_DF04_1'; + + case 'osdebcdicdf415': + return 'OSD_EBCDIC_DF04_15'; + + case 'cspc8danishnorwegian': + case 'pc8danishnorwegian': + return 'PC8-Danish-Norwegian'; + + case 'cspc8turkish': + case 'pc8turkish': + return 'PC8-Turkish'; + + case 'csiso16portuguese': + case 'iso646pt': + case 'isoir16': + case 'pt': + return 'PT'; + + case 'csiso84portuguese2': + case 'iso646pt2': + case 'isoir84': + case 'pt2': + return 'PT2'; + + case 'cp154': + case 'csptcp154': + case 'cyrillicasian': + case 'pt154': + case 'ptcp154': + return 'PTCP154'; + + case 'scsu': + return 'SCSU'; + + case 'csiso10swedish': + case 'fi': + case 'iso646fi': + case 'iso646se': + case 'isoir10': + case 'se': + case 'sen850200b': + return 'SEN_850200_B'; + + case 'csiso11swedishfornames': + case 'iso646se2': + case 'isoir11': + case 'se2': + case 'sen850200c': + return 'SEN_850200_C'; + + case 'csshiftjis': + case 'mskanji': + case 'shiftjis': + return 'Shift_JIS'; + + case 'csiso102t617bit': + case 'isoir102': + case 't617bit': + return 'T.61-7bit'; + + case 'csiso103t618bit': + case 'isoir103': + case 't61': + case 't618bit': + return 'T.61-8bit'; + + case 'csiso128t101g2': + case 'isoir128': + case 't101g2': + return 'T.101-G2'; + + case 'cstscii': + case 'tscii': + return 'TSCII'; + + case 'csunicode11': + case 'unicode11': + return 'UNICODE-1-1'; + + case 'csunicode11utf7': + case 'unicode11utf7': + return 'UNICODE-1-1-UTF-7'; + + case 'csunknown8bit': + case 'unknown8bit': + return 'UNKNOWN-8BIT'; + + case 'ansix341968': + case 'ansix341986': + case 'ascii': + case 'cp367': + case 'csascii': + case 'ibm367': + case 'iso646irv1991': + case 'iso646us': + case 'isoir6': + case 'us': + case 'usascii': + return 'US-ASCII'; + + case 'csusdk': + case 'usdk': + return 'us-dk'; + + case 'utf7': + return 'UTF-7'; + + case 'utf8': + return 'UTF-8'; + + case 'utf16': + return 'UTF-16'; + + case 'utf16be': + return 'UTF-16BE'; + + case 'utf16le': + return 'UTF-16LE'; + + case 'utf32': + return 'UTF-32'; + + case 'utf32be': + return 'UTF-32BE'; + + case 'utf32le': + return 'UTF-32LE'; + + case 'csventurainternational': + case 'venturainternational': + return 'Ventura-International'; + + case 'csventuramath': + case 'venturamath': + return 'Ventura-Math'; + + case 'csventuraus': + case 'venturaus': + return 'Ventura-US'; + + case 'csiso70videotexsupp1': + case 'isoir70': + case 'videotexsuppl': + return 'videotex-suppl'; + + case 'csviqr': + case 'viqr': + return 'VIQR'; + + case 'csviscii': + case 'viscii': + return 'VISCII'; + + case 'cswindows31j': + case 'windows31j': + return 'Windows-31J'; + + case 'iso885911': + case 'tis620': + return 'windows-874'; + + case 'cseuckr': + case 'csksc56011987': + case 'euckr': + case 'isoir149': + case 'korean': + case 'ksc5601': + case 'ksc56011987': + case 'ksc56011989': + case 'windows949': + return 'windows-949'; + + case 'windows1250': + return 'windows-1250'; + + case 'windows1251': + return 'windows-1251'; + + case 'cp819': + case 'csisolatin1': + case 'ibm819': + case 'iso88591': + case 'iso885911987': + case 'isoir100': + case 'l1': + case 'latin1': + case 'windows1252': + return 'windows-1252'; + + case 'windows1253': + return 'windows-1253'; + + case 'csisolatin5': + case 'iso88599': + case 'iso885991989': + case 'isoir148': + case 'l5': + case 'latin5': + case 'windows1254': + return 'windows-1254'; + + case 'windows1255': + return 'windows-1255'; + + case 'windows1256': + return 'windows-1256'; + + case 'windows1257': + return 'windows-1257'; + + case 'windows1258': + return 'windows-1258'; + + default: + return $charset; + } + } + + function get_curl_version() + { + if (is_array($curl = curl_version())) + { + $curl = $curl['version']; + } + elseif (substr($curl, 0, 5) === 'curl/') + { + $curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5)); + } + elseif (substr($curl, 0, 8) === 'libcurl/') + { + $curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8)); + } + else + { + $curl = 0; + } + return $curl; + } + + function is_subclass_of($class1, $class2) + { + if (func_num_args() !== 2) + { + trigger_error('Wrong parameter count for SimplePie_Misc::is_subclass_of()', E_USER_WARNING); + } + elseif (version_compare(PHP_VERSION, '5.0.3', '>=') || is_object($class1)) + { + return is_subclass_of($class1, $class2); + } + elseif (is_string($class1) && is_string($class2)) + { + if (class_exists($class1)) + { + if (class_exists($class2)) + { + $class2 = strtolower($class2); + while ($class1 = strtolower(get_parent_class($class1))) + { + if ($class1 === $class2) + { + return true; + } + } + } + } + else + { + trigger_error('Unknown class passed as parameter', E_USER_WARNNG); + } + } + return false; + } + + /** + * Strip HTML comments + * + * @access public + * @param string $data Data to strip comments from + * @return string Comment stripped string + */ + function strip_comments($data) + { + $output = ''; + while (($start = strpos($data, '<!--')) !== false) + { + $output .= substr($data, 0, $start); + if (($end = strpos($data, '-->', $start)) !== false) + { + $data = substr_replace($data, '', 0, $end + 3); + } + else + { + $data = ''; + } + } + return $output . $data; + } + + function parse_date($dt) + { + $parser = SimplePie_Parse_Date::get(); + return $parser->parse($dt); + } + + /** + * Decode HTML entities + * + * @static + * @access public + * @param string $data Input data + * @return string Output data + */ + function entities_decode($data) + { + $decoder =& new SimplePie_Decode_HTML_Entities($data); + return $decoder->parse(); + } + + /** + * Remove RFC822 comments + * + * @access public + * @param string $data Data to strip comments from + * @return string Comment stripped string + */ + function uncomment_rfc822($string) + { + $string = (string) $string; + $position = 0; + $length = strlen($string); + $depth = 0; + + $output = ''; + + while ($position < $length && ($pos = strpos($string, '(', $position)) !== false) + { + $output .= substr($string, $position, $pos - $position); + $position = $pos + 1; + if ($string[$pos - 1] !== '\\') + { + $depth++; + while ($depth && $position < $length) + { + $position += strcspn($string, '()', $position); + if ($string[$position - 1] === '\\') + { + $position++; + continue; + } + elseif (isset($string[$position])) + { + switch ($string[$position]) + { + case '(': + $depth++; + break; + + case ')': + $depth--; + break; + } + $position++; + } + else + { + break; + } + } + } + else + { + $output .= '('; + } + } + $output .= substr($string, $position); + + return $output; + } + + function parse_mime($mime) + { + if (($pos = strpos($mime, ';')) === false) + { + return trim($mime); + } + else + { + return trim(substr($mime, 0, $pos)); + } + } + + function htmlspecialchars_decode($string, $quote_style) + { + if (function_exists('htmlspecialchars_decode')) + { + return htmlspecialchars_decode($string, $quote_style); + } + else + { + return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, $quote_style))); + } + } + + function atom_03_construct_type($attribs) + { + if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) === 'base64')) + { + $mode = SIMPLEPIE_CONSTRUCT_BASE64; + } + else + { + $mode = SIMPLEPIE_CONSTRUCT_NONE; + } + if (isset($attribs['']['type'])) + { + switch (strtolower(trim($attribs['']['type']))) + { + case 'text': + case 'text/plain': + return SIMPLEPIE_CONSTRUCT_TEXT | $mode; + + case 'html': + case 'text/html': + return SIMPLEPIE_CONSTRUCT_HTML | $mode; + + case 'xhtml': + case 'application/xhtml+xml': + return SIMPLEPIE_CONSTRUCT_XHTML | $mode; + + default: + return SIMPLEPIE_CONSTRUCT_NONE | $mode; + } + } + else + { + return SIMPLEPIE_CONSTRUCT_TEXT | $mode; + } + } + + function atom_10_construct_type($attribs) + { + if (isset($attribs['']['type'])) + { + switch (strtolower(trim($attribs['']['type']))) + { + case 'text': + return SIMPLEPIE_CONSTRUCT_TEXT; + + case 'html': + return SIMPLEPIE_CONSTRUCT_HTML; + + case 'xhtml': + return SIMPLEPIE_CONSTRUCT_XHTML; + + default: + return SIMPLEPIE_CONSTRUCT_NONE; + } + } + return SIMPLEPIE_CONSTRUCT_TEXT; + } + + function atom_10_content_construct_type($attribs) + { + if (isset($attribs['']['type'])) + { + $type = strtolower(trim($attribs['']['type'])); + switch ($type) + { + case 'text': + return SIMPLEPIE_CONSTRUCT_TEXT; + + case 'html': + return SIMPLEPIE_CONSTRUCT_HTML; + + case 'xhtml': + return SIMPLEPIE_CONSTRUCT_XHTML; + } + if (in_array(substr($type, -4), array('+xml', '/xml')) || substr($type, 0, 5) === 'text/') + { + return SIMPLEPIE_CONSTRUCT_NONE; + } + else + { + return SIMPLEPIE_CONSTRUCT_BASE64; + } + } + else + { + return SIMPLEPIE_CONSTRUCT_TEXT; + } + } + + function is_isegment_nz_nc($string) + { + return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string); + } + + function space_seperated_tokens($string) + { + $space_characters = "\x20\x09\x0A\x0B\x0C\x0D"; + $string_length = strlen($string); + + $position = strspn($string, $space_characters); + $tokens = array(); + + while ($position < $string_length) + { + $len = strcspn($string, $space_characters, $position); + $tokens[] = substr($string, $position, $len); + $position += $len; + $position += strspn($string, $space_characters, $position); + } + + return $tokens; + } + + function array_unique($array) + { + if (version_compare(PHP_VERSION, '5.2', '>=')) + { + return array_unique($array); + } + else + { + $array = (array) $array; + $new_array = array(); + $new_array_strings = array(); + foreach ($array as $key => $value) + { + if (is_object($value)) + { + if (method_exists($value, '__toString')) + { + $cmp = $value->__toString(); + } + else + { + trigger_error('Object of class ' . get_class($value) . ' could not be converted to string', E_USER_ERROR); + } + } + elseif (is_array($value)) + { + $cmp = (string) reset($value); + } + else + { + $cmp = (string) $value; + } + if (!in_array($cmp, $new_array_strings)) + { + $new_array[$key] = $value; + $new_array_strings[] = $cmp; + } + } + return $new_array; + } + } + + /** + * Converts a unicode codepoint to a UTF-8 character + * + * @static + * @access public + * @param int $codepoint Unicode codepoint + * @return string UTF-8 character + */ + function codepoint_to_utf8($codepoint) + { + $codepoint = (int) $codepoint; + if ($codepoint < 0) + { + return false; + } + else if ($codepoint <= 0x7f) + { + return chr($codepoint); + } + else if ($codepoint <= 0x7ff) + { + return chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f)); + } + else if ($codepoint <= 0xffff) + { + return chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f)); + } + else if ($codepoint <= 0x10ffff) + { + return chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f)); + } + else + { + // U+FFFD REPLACEMENT CHARACTER + return "\xEF\xBF\xBD"; + } + } + + /** + * Re-implementation of PHP 5's stripos() + * + * Returns the numeric position of the first occurrence of needle in the + * haystack string. + * + * @static + * @access string + * @param object $haystack + * @param string $needle Note that the needle may be a string of one or more + * characters. If needle is not a string, it is converted to an integer + * and applied as the ordinal value of a character. + * @param int $offset The optional offset parameter allows you to specify which + * character in haystack to start searching. The position returned is still + * relative to the beginning of haystack. + * @return bool If needle is not found, stripos() will return boolean false. + */ + function stripos($haystack, $needle, $offset = 0) + { + if (function_exists('stripos')) + { + return stripos($haystack, $needle, $offset); + } + else + { + if (is_string($needle)) + { + $needle = strtolower($needle); + } + elseif (is_int($needle) || is_bool($needle) || is_double($needle)) + { + $needle = strtolower(chr($needle)); + } + else + { + trigger_error('needle is not a string or an integer', E_USER_WARNING); + return false; + } + + return strpos(strtolower($haystack), $needle, $offset); + } + } + + /** + * Similar to parse_str() + * + * Returns an associative array of name/value pairs, where the value is an + * array of values that have used the same name + * + * @static + * @access string + * @param string $str The input string. + * @return array + */ + function parse_str($str) + { + $return = array(); + $str = explode('&', $str); + + foreach ($str as $section) + { + if (strpos($section, '=') !== false) + { + list($name, $value) = explode('=', $section, 2); + $return[urldecode($name)][] = urldecode($value); + } + else + { + $return[urldecode($section)][] = null; + } + } + + return $return; + } + + /** + * Detect XML encoding, as per XML 1.0 Appendix F.1 + * + * @todo Add support for EBCDIC + * @param string $data XML data + * @return array Possible encodings + */ + function xml_encoding($data) + { + // UTF-32 Big Endian BOM + if (substr($data, 0, 4) === "\x00\x00\xFE\xFF") + { + $encoding[] = 'UTF-32BE'; + } + // UTF-32 Little Endian BOM + elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00") + { + $encoding[] = 'UTF-32LE'; + } + // UTF-16 Big Endian BOM + elseif (substr($data, 0, 2) === "\xFE\xFF") + { + $encoding[] = 'UTF-16BE'; + } + // UTF-16 Little Endian BOM + elseif (substr($data, 0, 2) === "\xFF\xFE") + { + $encoding[] = 'UTF-16LE'; + } + // UTF-8 BOM + elseif (substr($data, 0, 3) === "\xEF\xBB\xBF") + { + $encoding[] = 'UTF-8'; + } + // UTF-32 Big Endian Without BOM + elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C") + { + if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E")) + { + $parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8')); + if ($parser->parse()) + { + $encoding[] = $parser->encoding; + } + } + $encoding[] = 'UTF-32BE'; + } + // UTF-32 Little Endian Without BOM + elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00") + { + if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00")) + { + $parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8')); + if ($parser->parse()) + { + $encoding[] = $parser->encoding; + } + } + $encoding[] = 'UTF-32LE'; + } + // UTF-16 Big Endian Without BOM + elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C") + { + if ($pos = strpos($data, "\x00\x3F\x00\x3E")) + { + $parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8')); + if ($parser->parse()) + { + $encoding[] = $parser->encoding; + } + } + $encoding[] = 'UTF-16BE'; + } + // UTF-16 Little Endian Without BOM + elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00") + { + if ($pos = strpos($data, "\x3F\x00\x3E\x00")) + { + $parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8')); + if ($parser->parse()) + { + $encoding[] = $parser->encoding; + } + } + $encoding[] = 'UTF-16LE'; + } + // US-ASCII (or superset) + elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C") + { + if ($pos = strpos($data, "\x3F\x3E")) + { + $parser =& new SimplePie_XML_Declaration_Parser(substr($data, 5, $pos - 5)); + if ($parser->parse()) + { + $encoding[] = $parser->encoding; + } + } + $encoding[] = 'UTF-8'; + } + // Fallback to UTF-8 + else + { + $encoding[] = 'UTF-8'; + } + return $encoding; + } + + function output_javascript() + { + if (function_exists('ob_gzhandler')) + { + ob_start('ob_gzhandler'); + } + header('Content-type: text/javascript; charset: UTF-8'); + header('Cache-Control: must-revalidate'); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days + ?> +function embed_odeo(link) { + document.writeln('<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url='+link+'"></embed>'); +} + +function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) { + if (placeholder != '') { + document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>'); + } + else { + document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>'); + } +} + +function embed_flash(bgcolor, width, height, link, loop, type) { + document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>'); +} + +function embed_flv(width, height, link, placeholder, loop, player) { + document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>'); +} + +function embed_wmedia(width, height, link) { + document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>'); +} + <?php + } +} + +/** + * Decode HTML Entities + * + * This implements HTML5 as of revision 967 (2007-06-28) + * + * @package SimplePie + */ +class SimplePie_Decode_HTML_Entities +{ + /** + * Data to be parsed + * + * @access private + * @var string + */ + var $data = ''; + + /** + * Currently consumed bytes + * + * @access private + * @var string + */ + var $consumed = ''; + + /** + * Position of the current byte being parsed + * + * @access private + * @var int + */ + var $position = 0; + + /** + * Create an instance of the class with the input data + * + * @access public + * @param string $data Input data + */ + function SimplePie_Decode_HTML_Entities($data) + { + $this->data = $data; + } + + /** + * Parse the input data + * + * @access public + * @return string Output data + */ + function parse() + { + while (($this->position = strpos($this->data, '&', $this->position)) !== false) + { + $this->consume(); + $this->entity(); + $this->consumed = ''; + } + return $this->data; + } + + /** + * Consume the next byte + * + * @access private + * @return mixed The next byte, or false, if there is no more data + */ + function consume() + { + if (isset($this->data[$this->position])) + { + $this->consumed .= $this->data[$this->position]; + return $this->data[$this->position++]; + } + else + { + return false; + } + } + + /** + * Consume a range of characters + * + * @access private + * @param string $chars Characters to consume + * @return mixed A series of characters that match the range, or false + */ + function consume_range($chars) + { + if ($len = strspn($this->data, $chars, $this->position)) + { + $data = substr($this->data, $this->position, $len); + $this->consumed .= $data; + $this->position += $len; + return $data; + } + else + { + return false; + } + } + + /** + * Unconsume one byte + * + * @access private + */ + function unconsume() + { + $this->consumed = substr($this->consumed, 0, -1); + $this->position--; + } + + /** + * Decode an entity + * + * @access private + */ + function entity() + { + switch ($this->consume()) + { + case "\x09": + case "\x0A": + case "\x0B": + case "\x0B": + case "\x0C": + case "\x20": + case "\x3C": + case "\x26": + case false: + break; + + case "\x23": + switch ($this->consume()) + { + case "\x78": + case "\x58": + $range = '0123456789ABCDEFabcdef'; + $hex = true; + break; + + default: + $range = '0123456789'; + $hex = false; + $this->unconsume(); + break; + } + + if ($codepoint = $this->consume_range($range)) + { + static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8"); + + if ($hex) + { + $codepoint = hexdec($codepoint); + } + else + { + $codepoint = intval($codepoint); + } + + if (isset($windows_1252_specials[$codepoint])) + { + $replacement = $windows_1252_specials[$codepoint]; + } + else + { + $replacement = SimplePie_Misc::codepoint_to_utf8($codepoint); + } + + if (!in_array($this->consume(), array(';', false), true)) + { + $this->unconsume(); + } + + $consumed_length = strlen($this->consumed); + $this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length); + $this->position += strlen($replacement) - $consumed_length; + } + break; + + default: + static $entities = array('Aacute' => "\xC3\x81", 'aacute' => "\xC3\xA1", 'Aacute;' => "\xC3\x81", 'aacute;' => "\xC3\xA1", 'Acirc' => "\xC3\x82", 'acirc' => "\xC3\xA2", 'Acirc;' => "\xC3\x82", 'acirc;' => "\xC3\xA2", 'acute' => "\xC2\xB4", 'acute;' => "\xC2\xB4", 'AElig' => "\xC3\x86", 'aelig' => "\xC3\xA6", 'AElig;' => "\xC3\x86", 'aelig;' => "\xC3\xA6", 'Agrave' => "\xC3\x80", 'agrave' => "\xC3\xA0", 'Agrave;' => "\xC3\x80", 'agrave;' => "\xC3\xA0", 'alefsym;' => "\xE2\x84\xB5", 'Alpha;' => "\xCE\x91", 'alpha;' => "\xCE\xB1", 'AMP' => "\x26", 'amp' => "\x26", 'AMP;' => "\x26", 'amp;' => "\x26", 'and;' => "\xE2\x88\xA7", 'ang;' => "\xE2\x88\xA0", 'apos;' => "\x27", 'Aring' => "\xC3\x85", 'aring' => "\xC3\xA5", 'Aring;' => "\xC3\x85", 'aring;' => "\xC3\xA5", 'asymp;' => "\xE2\x89\x88", 'Atilde' => "\xC3\x83", 'atilde' => "\xC3\xA3", 'Atilde;' => "\xC3\x83", 'atilde;' => "\xC3\xA3", 'Auml' => "\xC3\x84", 'auml' => "\xC3\xA4", 'Auml;' => "\xC3\x84", 'auml;' => "\xC3\xA4", 'bdquo;' => "\xE2\x80\x9E", 'Beta;' => "\xCE\x92", 'beta;' => "\xCE\xB2", 'brvbar' => "\xC2\xA6", 'brvbar;' => "\xC2\xA6", 'bull;' => "\xE2\x80\xA2", 'cap;' => "\xE2\x88\xA9", 'Ccedil' => "\xC3\x87", 'ccedil' => "\xC3\xA7", 'Ccedil;' => "\xC3\x87", 'ccedil;' => "\xC3\xA7", 'cedil' => "\xC2\xB8", 'cedil;' => "\xC2\xB8", 'cent' => "\xC2\xA2", 'cent;' => "\xC2\xA2", 'Chi;' => "\xCE\xA7", 'chi;' => "\xCF\x87", 'circ;' => "\xCB\x86", 'clubs;' => "\xE2\x99\xA3", 'cong;' => "\xE2\x89\x85", 'COPY' => "\xC2\xA9", 'copy' => "\xC2\xA9", 'COPY;' => "\xC2\xA9", 'copy;' => "\xC2\xA9", 'crarr;' => "\xE2\x86\xB5", 'cup;' => "\xE2\x88\xAA", 'curren' => "\xC2\xA4", 'curren;' => "\xC2\xA4", 'Dagger;' => "\xE2\x80\xA1", 'dagger;' => "\xE2\x80\xA0", 'dArr;' => "\xE2\x87\x93", 'darr;' => "\xE2\x86\x93", 'deg' => "\xC2\xB0", 'deg;' => "\xC2\xB0", 'Delta;' => "\xCE\x94", 'delta;' => "\xCE\xB4", 'diams;' => "\xE2\x99\xA6", 'divide' => "\xC3\xB7", 'divide;' => "\xC3\xB7", 'Eacute' => "\xC3\x89", 'eacute' => "\xC3\xA9", 'Eacute;' => "\xC3\x89", 'eacute;' => "\xC3\xA9", 'Ecirc' => "\xC3\x8A", 'ecirc' => "\xC3\xAA", 'Ecirc;' => "\xC3\x8A", 'ecirc;' => "\xC3\xAA", 'Egrave' => "\xC3\x88", 'egrave' => "\xC3\xA8", 'Egrave;' => "\xC3\x88", 'egrave;' => "\xC3\xA8", 'empty;' => "\xE2\x88\x85", 'emsp;' => "\xE2\x80\x83", 'ensp;' => "\xE2\x80\x82", 'Epsilon;' => "\xCE\x95", 'epsilon;' => "\xCE\xB5", 'equiv;' => "\xE2\x89\xA1", 'Eta;' => "\xCE\x97", 'eta;' => "\xCE\xB7", 'ETH' => "\xC3\x90", 'eth' => "\xC3\xB0", 'ETH;' => "\xC3\x90", 'eth;' => "\xC3\xB0", 'Euml' => "\xC3\x8B", 'euml' => "\xC3\xAB", 'Euml;' => "\xC3\x8B", 'euml;' => "\xC3\xAB", 'euro;' => "\xE2\x82\xAC", 'exist;' => "\xE2\x88\x83", 'fnof;' => "\xC6\x92", 'forall;' => "\xE2\x88\x80", 'frac12' => "\xC2\xBD", 'frac12;' => "\xC2\xBD", 'frac14' => "\xC2\xBC", 'frac14;' => "\xC2\xBC", 'frac34' => "\xC2\xBE", 'frac34;' => "\xC2\xBE", 'frasl;' => "\xE2\x81\x84", 'Gamma;' => "\xCE\x93", 'gamma;' => "\xCE\xB3", 'ge;' => "\xE2\x89\xA5", 'GT' => "\x3E", 'gt' => "\x3E", 'GT;' => "\x3E", 'gt;' => "\x3E", 'hArr;' => "\xE2\x87\x94", 'harr;' => "\xE2\x86\x94", 'hearts;' => "\xE2\x99\xA5", 'hellip;' => "\xE2\x80\xA6", 'Iacute' => "\xC3\x8D", 'iacute' => "\xC3\xAD", 'Iacute;' => "\xC3\x8D", 'iacute;' => "\xC3\xAD", 'Icirc' => "\xC3\x8E", 'icirc' => "\xC3\xAE", 'Icirc;' => "\xC3\x8E", 'icirc;' => "\xC3\xAE", 'iexcl' => "\xC2\xA1", 'iexcl;' => "\xC2\xA1", 'Igrave' => "\xC3\x8C", 'igrave' => "\xC3\xAC", 'Igrave;' => "\xC3\x8C", 'igrave;' => "\xC3\xAC", 'image;' => "\xE2\x84\x91", 'infin;' => "\xE2\x88\x9E", 'int;' => "\xE2\x88\xAB", 'Iota;' => "\xCE\x99", 'iota;' => "\xCE\xB9", 'iquest' => "\xC2\xBF", 'iquest;' => "\xC2\xBF", 'isin;' => "\xE2\x88\x88", 'Iuml' => "\xC3\x8F", 'iuml' => "\xC3\xAF", 'Iuml;' => "\xC3\x8F", 'iuml;' => "\xC3\xAF", 'Kappa;' => "\xCE\x9A", 'kappa;' => "\xCE\xBA", 'Lambda;' => "\xCE\x9B", 'lambda;' => "\xCE\xBB", 'lang;' => "\xE3\x80\x88", 'laquo' => "\xC2\xAB", 'laquo;' => "\xC2\xAB", 'lArr;' => "\xE2\x87\x90", 'larr;' => "\xE2\x86\x90", 'lceil;' => "\xE2\x8C\x88", 'ldquo;' => "\xE2\x80\x9C", 'le;' => "\xE2\x89\xA4", 'lfloor;' => "\xE2\x8C\x8A", 'lowast;' => "\xE2\x88\x97", 'loz;' => "\xE2\x97\x8A", 'lrm;' => "\xE2\x80\x8E", 'lsaquo;' => "\xE2\x80\xB9", 'lsquo;' => "\xE2\x80\x98", 'LT' => "\x3C", 'lt' => "\x3C", 'LT;' => "\x3C", 'lt;' => "\x3C", 'macr' => "\xC2\xAF", 'macr;' => "\xC2\xAF", 'mdash;' => "\xE2\x80\x94", 'micro' => "\xC2\xB5", 'micro;' => "\xC2\xB5", 'middot' => "\xC2\xB7", 'middot;' => "\xC2\xB7", 'minus;' => "\xE2\x88\x92", 'Mu;' => "\xCE\x9C", 'mu;' => "\xCE\xBC", 'nabla;' => "\xE2\x88\x87", 'nbsp' => "\xC2\xA0", 'nbsp;' => "\xC2\xA0", 'ndash;' => "\xE2\x80\x93", 'ne;' => "\xE2\x89\xA0", 'ni;' => "\xE2\x88\x8B", 'not' => "\xC2\xAC", 'not;' => "\xC2\xAC", 'notin;' => "\xE2\x88\x89", 'nsub;' => "\xE2\x8A\x84", 'Ntilde' => "\xC3\x91", 'ntilde' => "\xC3\xB1", 'Ntilde;' => "\xC3\x91", 'ntilde;' => "\xC3\xB1", 'Nu;' => "\xCE\x9D", 'nu;' => "\xCE\xBD", 'Oacute' => "\xC3\x93", 'oacute' => "\xC3\xB3", 'Oacute;' => "\xC3\x93", 'oacute;' => "\xC3\xB3", 'Ocirc' => "\xC3\x94", 'ocirc' => "\xC3\xB4", 'Ocirc;' => "\xC3\x94", 'ocirc;' => "\xC3\xB4", 'OElig;' => "\xC5\x92", 'oelig;' => "\xC5\x93", 'Ograve' => "\xC3\x92", 'ograve' => "\xC3\xB2", 'Ograve;' => "\xC3\x92", 'ograve;' => "\xC3\xB2", 'oline;' => "\xE2\x80\xBE", 'Omega;' => "\xCE\xA9", 'omega;' => "\xCF\x89", 'Omicron;' => "\xCE\x9F", 'omicron;' => "\xCE\xBF", 'oplus;' => "\xE2\x8A\x95", 'or;' => "\xE2\x88\xA8", 'ordf' => "\xC2\xAA", 'ordf;' => "\xC2\xAA", 'ordm' => "\xC2\xBA", 'ordm;' => "\xC2\xBA", 'Oslash' => "\xC3\x98", 'oslash' => "\xC3\xB8", 'Oslash;' => "\xC3\x98", 'oslash;' => "\xC3\xB8", 'Otilde' => "\xC3\x95", 'otilde' => "\xC3\xB5", 'Otilde;' => "\xC3\x95", 'otilde;' => "\xC3\xB5", 'otimes;' => "\xE2\x8A\x97", 'Ouml' => "\xC3\x96", 'ouml' => "\xC3\xB6", 'Ouml;' => "\xC3\x96", 'ouml;' => "\xC3\xB6", 'para' => "\xC2\xB6", 'para;' => "\xC2\xB6", 'part;' => "\xE2\x88\x82", 'permil;' => "\xE2\x80\xB0", 'perp;' => "\xE2\x8A\xA5", 'Phi;' => "\xCE\xA6", 'phi;' => "\xCF\x86", 'Pi;' => "\xCE\xA0", 'pi;' => "\xCF\x80", 'piv;' => "\xCF\x96", 'plusmn' => "\xC2\xB1", 'plusmn;' => "\xC2\xB1", 'pound' => "\xC2\xA3", 'pound;' => "\xC2\xA3", 'Prime;' => "\xE2\x80\xB3", 'prime;' => "\xE2\x80\xB2", 'prod;' => "\xE2\x88\x8F", 'prop;' => "\xE2\x88\x9D", 'Psi;' => "\xCE\xA8", 'psi;' => "\xCF\x88", 'QUOT' => "\x22", 'quot' => "\x22", 'QUOT;' => "\x22", 'quot;' => "\x22", 'radic;' => "\xE2\x88\x9A", 'rang;' => "\xE3\x80\x89", 'raquo' => "\xC2\xBB", 'raquo;' => "\xC2\xBB", 'rArr;' => "\xE2\x87\x92", 'rarr;' => "\xE2\x86\x92", 'rceil;' => "\xE2\x8C\x89", 'rdquo;' => "\xE2\x80\x9D", 'real;' => "\xE2\x84\x9C", 'REG' => "\xC2\xAE", 'reg' => "\xC2\xAE", 'REG;' => "\xC2\xAE", 'reg;' => "\xC2\xAE", 'rfloor;' => "\xE2\x8C\x8B", 'Rho;' => "\xCE\xA1", 'rho;' => "\xCF\x81", 'rlm;' => "\xE2\x80\x8F", 'rsaquo;' => "\xE2\x80\xBA", 'rsquo;' => "\xE2\x80\x99", 'sbquo;' => "\xE2\x80\x9A", 'Scaron;' => "\xC5\xA0", 'scaron;' => "\xC5\xA1", 'sdot;' => "\xE2\x8B\x85", 'sect' => "\xC2\xA7", 'sect;' => "\xC2\xA7", 'shy' => "\xC2\xAD", 'shy;' => "\xC2\xAD", 'Sigma;' => "\xCE\xA3", 'sigma;' => "\xCF\x83", 'sigmaf;' => "\xCF\x82", 'sim;' => "\xE2\x88\xBC", 'spades;' => "\xE2\x99\xA0", 'sub;' => "\xE2\x8A\x82", 'sube;' => "\xE2\x8A\x86", 'sum;' => "\xE2\x88\x91", 'sup;' => "\xE2\x8A\x83", 'sup1' => "\xC2\xB9", 'sup1;' => "\xC2\xB9", 'sup2' => "\xC2\xB2", 'sup2;' => "\xC2\xB2", 'sup3' => "\xC2\xB3", 'sup3;' => "\xC2\xB3", 'supe;' => "\xE2\x8A\x87", 'szlig' => "\xC3\x9F", 'szlig;' => "\xC3\x9F", 'Tau;' => "\xCE\xA4", 'tau;' => "\xCF\x84", 'there4;' => "\xE2\x88\xB4", 'Theta;' => "\xCE\x98", 'theta;' => "\xCE\xB8", 'thetasym;' => "\xCF\x91", 'thinsp;' => "\xE2\x80\x89", 'THORN' => "\xC3\x9E", 'thorn' => "\xC3\xBE", 'THORN;' => "\xC3\x9E", 'thorn;' => "\xC3\xBE", 'tilde;' => "\xCB\x9C", 'times' => "\xC3\x97", 'times;' => "\xC3\x97", 'TRADE;' => "\xE2\x84\xA2", 'trade;' => "\xE2\x84\xA2", 'Uacute' => "\xC3\x9A", 'uacute' => "\xC3\xBA", 'Uacute;' => "\xC3\x9A", 'uacute;' => "\xC3\xBA", 'uArr;' => "\xE2\x87\x91", 'uarr;' => "\xE2\x86\x91", 'Ucirc' => "\xC3\x9B", 'ucirc' => "\xC3\xBB", 'Ucirc;' => "\xC3\x9B", 'ucirc;' => "\xC3\xBB", 'Ugrave' => "\xC3\x99", 'ugrave' => "\xC3\xB9", 'Ugrave;' => "\xC3\x99", 'ugrave;' => "\xC3\xB9", 'uml' => "\xC2\xA8", 'uml;' => "\xC2\xA8", 'upsih;' => "\xCF\x92", 'Upsilon;' => "\xCE\xA5", 'upsilon;' => "\xCF\x85", 'Uuml' => "\xC3\x9C", 'uuml' => "\xC3\xBC", 'Uuml;' => "\xC3\x9C", 'uuml;' => "\xC3\xBC", 'weierp;' => "\xE2\x84\x98", 'Xi;' => "\xCE\x9E", 'xi;' => "\xCE\xBE", 'Yacute' => "\xC3\x9D", 'yacute' => "\xC3\xBD", 'Yacute;' => "\xC3\x9D", 'yacute;' => "\xC3\xBD", 'yen' => "\xC2\xA5", 'yen;' => "\xC2\xA5", 'yuml' => "\xC3\xBF", 'Yuml;' => "\xC5\xB8", 'yuml;' => "\xC3\xBF", 'Zeta;' => "\xCE\x96", 'zeta;' => "\xCE\xB6", 'zwj;' => "\xE2\x80\x8D", 'zwnj;' => "\xE2\x80\x8C"); + + for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++) + { + $consumed = substr($this->consumed, 1); + if (isset($entities[$consumed])) + { + $match = $consumed; + } + } + + if ($match !== null) + { + $this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1); + $this->position += strlen($entities[$match]) - strlen($consumed) - 1; + } + break; + } + } +} + +/** + * IRI parser/serialiser + * + * @package SimplePie + */ +class SimplePie_IRI +{ + /** + * Scheme + * + * @access private + * @var string + */ + var $scheme; + + /** + * User Information + * + * @access private + * @var string + */ + var $userinfo; + + /** + * Host + * + * @access private + * @var string + */ + var $host; + + /** + * Port + * + * @access private + * @var string + */ + var $port; + + /** + * Path + * + * @access private + * @var string + */ + var $path; + + /** + * Query + * + * @access private + * @var string + */ + var $query; + + /** + * Fragment + * + * @access private + * @var string + */ + var $fragment; + + /** + * Whether the object represents a valid IRI + * + * @access private + * @var array + */ + var $valid = array(); + + /** + * Return the entire IRI when you try and read the object as a string + * + * @access public + * @return string + */ + function __toString() + { + return $this->get_iri(); + } + + /** + * Create a new IRI object, from a specified string + * + * @access public + * @param string $iri + * @return SimplePie_IRI + */ + function SimplePie_IRI($iri) + { + $iri = (string) $iri; + if ($iri !== '') + { + $parsed = $this->parse_iri($iri); + $this->set_scheme($parsed['scheme']); + $this->set_authority($parsed['authority']); + $this->set_path($parsed['path']); + $this->set_query($parsed['query']); + $this->set_fragment($parsed['fragment']); + } + } + + /** + * Create a new IRI object by resolving a relative IRI + * + * @static + * @access public + * @param SimplePie_IRI $base Base IRI + * @param string $relative Relative IRI + * @return SimplePie_IRI + */ + function absolutize($base, $relative) + { + $relative = (string) $relative; + if ($relative !== '') + { + $relative =& new SimplePie_IRI($relative); + if ($relative->get_scheme() !== null) + { + $target = $relative; + } + elseif ($base->get_iri() !== null) + { + if ($relative->get_authority() !== null) + { + $target = $relative; + $target->set_scheme($base->get_scheme()); + } + else + { + $target =& new SimplePie_IRI(''); + $target->set_scheme($base->get_scheme()); + $target->set_userinfo($base->get_userinfo()); + $target->set_host($base->get_host()); + $target->set_port($base->get_port()); + if ($relative->get_path() !== null) + { + if (strpos($relative->get_path(), '/') === 0) + { + $target->set_path($relative->get_path()); + } + elseif (($base->get_userinfo() !== null || $base->get_host() !== null || $base->get_port() !== null) && $base->get_path() === null) + { + $target->set_path('/' . $relative->get_path()); + } + elseif (($last_segment = strrpos($base->get_path(), '/')) !== false) + { + $target->set_path(substr($base->get_path(), 0, $last_segment + 1) . $relative->get_path()); + } + else + { + $target->set_path($relative->get_path()); + } + $target->set_query($relative->get_query()); + } + else + { + $target->set_path($base->get_path()); + if ($relative->get_query() !== null) + { + $target->set_query($relative->get_query()); + } + elseif ($base->get_query() !== null) + { + $target->set_query($base->get_query()); + } + } + } + $target->set_fragment($relative->get_fragment()); + } + else + { + // No base URL, just return the relative URL + $target = $relative; + } + } + else + { + $target = $base; + } + return $target; + } + + /** + * Parse an IRI into scheme/authority/path/query/fragment segments + * + * @access private + * @param string $iri + * @return array + */ + function parse_iri($iri) + { + preg_match('/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/', $iri, $match); + for ($i = count($match); $i <= 9; $i++) + { + $match[$i] = ''; + } + return array('scheme' => $match[2], 'authority' => $match[4], 'path' => $match[5], 'query' => $match[7], 'fragment' => $match[9]); + } + + /** + * Remove dot segments from a path + * + * @access private + * @param string $input + * @return string + */ + function remove_dot_segments($input) + { + $output = ''; + while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..') + { + // A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise, + if (strpos($input, '../') === 0) + { + $input = substr($input, 3); + } + elseif (strpos($input, './') === 0) + { + $input = substr($input, 2); + } + // B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise, + elseif (strpos($input, '/./') === 0) + { + $input = substr_replace($input, '/', 0, 3); + } + elseif ($input === '/.') + { + $input = '/'; + } + // C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise, + elseif (strpos($input, '/../') === 0) + { + $input = substr_replace($input, '/', 0, 4); + $output = substr_replace($output, '', strrpos($output, '/')); + } + elseif ($input === '/..') + { + $input = '/'; + $output = substr_replace($output, '', strrpos($output, '/')); + } + // D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise, + elseif ($input === '.' || $input === '..') + { + $input = ''; + } + // E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer + elseif (($pos = strpos($input, '/', 1)) !== false) + { + $output .= substr($input, 0, $pos); + $input = substr_replace($input, '', 0, $pos); + } + else + { + $output .= $input; + $input = ''; + } + } + return $output . $input; + } + + /** + * Replace invalid character with percent encoding + * + * @access private + * @param string $string Input string + * @param string $valid_chars Valid characters + * @param int $case Normalise case + * @return string + */ + function replace_invalid_with_pct_encoding($string, $valid_chars, $case = SIMPLEPIE_SAME_CASE) + { + // Normalise case + if ($case & SIMPLEPIE_LOWERCASE) + { + $string = strtolower($string); + } + elseif ($case & SIMPLEPIE_UPPERCASE) + { + $string = strtoupper($string); + } + + // Store position and string length (to avoid constantly recalculating this) + $position = 0; + $strlen = strlen($string); + + // Loop as long as we have invalid characters, advancing the position to the next invalid character + while (($position += strspn($string, $valid_chars, $position)) < $strlen) + { + // If we have a % character + if ($string[$position] === '%') + { + // If we have a pct-encoded section + if ($position + 2 < $strlen && strspn($string, '0123456789ABCDEFabcdef', $position + 1, 2) === 2) + { + // Get the the represented character + $chr = chr(hexdec(substr($string, $position + 1, 2))); + + // If the character is valid, replace the pct-encoded with the actual character while normalising case + if (strpos($valid_chars, $chr) !== false) + { + if ($case & SIMPLEPIE_LOWERCASE) + { + $chr = strtolower($chr); + } + elseif ($case & SIMPLEPIE_UPPERCASE) + { + $chr = strtoupper($chr); + } + $string = substr_replace($string, $chr, $position, 3); + $strlen -= 2; + $position++; + } + + // Otherwise just normalise the pct-encoded to uppercase + else + { + $string = substr_replace($string, strtoupper(substr($string, $position + 1, 2)), $position + 1, 2); + $position += 3; + } + } + // If we don't have a pct-encoded section, just replace the % with its own esccaped form + else + { + $string = substr_replace($string, '%25', $position, 1); + $strlen += 2; + $position += 3; + } + } + // If we have an invalid character, change into its pct-encoded form + else + { + $replacement = sprintf("%%%02X", ord($string[$position])); + $string = str_replace($string[$position], $replacement, $string); + $strlen = strlen($string); + } + } + return $string; + } + + /** + * Check if the object represents a valid IRI + * + * @access public + * @return bool + */ + function is_valid() + { + return array_sum($this->valid) === count($this->valid); + } + + /** + * Set the scheme. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @access public + * @param string $scheme + * @return bool + */ + function set_scheme($scheme) + { + if ($scheme === null || $scheme === '') + { + $this->scheme = null; + } + else + { + $len = strlen($scheme); + switch (true) + { + case $len > 1: + if (!strspn($scheme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-.', 1)) + { + $this->scheme = null; + $this->valid[__FUNCTION__] = false; + return false; + } + + case $len > 0: + if (!strspn($scheme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 0, 1)) + { + $this->scheme = null; + $this->valid[__FUNCTION__] = false; + return false; + } + } + $this->scheme = strtolower($scheme); + } + $this->valid[__FUNCTION__] = true; + return true; + } + + /** + * Set the authority. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @access public + * @param string $authority + * @return bool + */ + function set_authority($authority) + { + if (($userinfo_end = strrpos($authority, '@')) !== false) + { + $userinfo = substr($authority, 0, $userinfo_end); + $authority = substr($authority, $userinfo_end + 1); + } + else + { + $userinfo = null; + } + + if (($port_start = strpos($authority, ':')) !== false) + { + $port = substr($authority, $port_start + 1); + $authority = substr($authority, 0, $port_start); + } + else + { + $port = null; + } + + return $this->set_userinfo($userinfo) && $this->set_host($authority) && $this->set_port($port); + } + + /** + * Set the userinfo. + * + * @access public + * @param string $userinfo + * @return bool + */ + function set_userinfo($userinfo) + { + if ($userinfo === null || $userinfo === '') + { + $this->userinfo = null; + } + else + { + $this->userinfo = $this->replace_invalid_with_pct_encoding($userinfo, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=:'); + } + $this->valid[__FUNCTION__] = true; + return true; + } + + /** + * Set the host. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @access public + * @param string $host + * @return bool + */ + function set_host($host) + { + if ($host === null || $host === '') + { + $this->host = null; + $this->valid[__FUNCTION__] = true; + return true; + } + elseif ($host[0] === '[' && substr($host, -1) === ']') + { + if (Net_IPv6::checkIPv6(substr($host, 1, -1))) + { + $this->host = $host; + $this->valid[__FUNCTION__] = true; + return true; + } + else + { + $this->host = null; + $this->valid[__FUNCTION__] = false; + return false; + } + } + else + { + $this->host = $this->replace_invalid_with_pct_encoding($host, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=', SIMPLEPIE_LOWERCASE); + $this->valid[__FUNCTION__] = true; + return true; + } + } + + /** + * Set the port. Returns true on success, false on failure (if there are + * any invalid characters). + * + * @access public + * @param string $port + * @return bool + */ + function set_port($port) + { + if ($port === null || $port === '') + { + $this->port = null; + $this->valid[__FUNCTION__] = true; + return true; + } + elseif (strspn($port, '0123456789') === strlen($port)) + { + $this->port = (int) $port; + $this->valid[__FUNCTION__] = true; + return true; + } + else + { + $this->port = null; + $this->valid[__FUNCTION__] = false; + return false; + } + } + + /** + * Set the path. + * + * @access public + * @param string $path + * @return bool + */ + function set_path($path) + { + if ($path === null || $path === '') + { + $this->path = null; + $this->valid[__FUNCTION__] = true; + return true; + } + elseif (substr($path, 0, 2) === '//' && $this->userinfo === null && $this->host === null && $this->port === null) + { + $this->path = null; + $this->valid[__FUNCTION__] = false; + return false; + } + else + { + $this->path = $this->replace_invalid_with_pct_encoding($path, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=@/'); + if ($this->scheme !== null) + { + $this->path = $this->remove_dot_segments($this->path); + } + $this->valid[__FUNCTION__] = true; + return true; + } + } + + /** + * Set the query. + * + * @access public + * @param string $query + * @return bool + */ + function set_query($query) + { + if ($query === null || $query === '') + { + $this->query = null; + } + else + { + $this->query = $this->replace_invalid_with_pct_encoding($query, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$\'()*+,;:@/?'); + } + $this->valid[__FUNCTION__] = true; + return true; + } + + /** + * Set the fragment. + * + * @access public + * @param string $fragment + * @return bool + */ + function set_fragment($fragment) + { + if ($fragment === null || $fragment === '') + { + $this->fragment = null; + } + else + { + $this->fragment = $this->replace_invalid_with_pct_encoding($fragment, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=:@/?'); + } + $this->valid[__FUNCTION__] = true; + return true; + } + + /** + * Get the complete IRI + * + * @access public + * @return string + */ + function get_iri() + { + $iri = ''; + if ($this->scheme !== null) + { + $iri .= $this->scheme . ':'; + } + if (($authority = $this->get_authority()) !== null) + { + $iri .= '//' . $authority; + } + if ($this->path !== null) + { + $iri .= $this->path; + } + if ($this->query !== null) + { + $iri .= '?' . $this->query; + } + if ($this->fragment !== null) + { + $iri .= '#' . $this->fragment; + } + + if ($iri !== '') + { + return $iri; + } + else + { + return null; + } + } + + /** + * Get the scheme + * + * @access public + * @return string + */ + function get_scheme() + { + return $this->scheme; + } + + /** + * Get the complete authority + * + * @access public + * @return string + */ + function get_authority() + { + $authority = ''; + if ($this->userinfo !== null) + { + $authority .= $this->userinfo . '@'; + } + if ($this->host !== null) + { + $authority .= $this->host; + } + if ($this->port !== null) + { + $authority .= ':' . $this->port; + } + + if ($authority !== '') + { + return $authority; + } + else + { + return null; + } + } + + /** + * Get the user information + * + * @access public + * @return string + */ + function get_userinfo() + { + return $this->userinfo; + } + + /** + * Get the host + * + * @access public + * @return string + */ + function get_host() + { + return $this->host; + } + + /** + * Get the port + * + * @access public + * @return string + */ + function get_port() + { + return $this->port; + } + + /** + * Get the path + * + * @access public + * @return string + */ + function get_path() + { + return $this->path; + } + + /** + * Get the query + * + * @access public + * @return string + */ + function get_query() + { + return $this->query; + } + + /** + * Get the fragment + * + * @access public + * @return string + */ + function get_fragment() + { + return $this->fragment; + } +} + +/** + * Class to validate and to work with IPv6 addresses. + * + * @package SimplePie + * @copyright 2003-2005 The PHP Group + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/package/Net_IPv6 + * @author Alexander Merz <alexander.merz@web.de> + * @author elfrink at introweb dot nl + * @author Josh Peck <jmp at joshpeck dot org> + * @author Geoffrey Sneddon <geoffers@gmail.com> + */ +class SimplePie_Net_IPv6 +{ + /** + * Removes a possible existing netmask specification of an IP address. + * + * @param string $ip the (compressed) IP as Hex representation + * @return string the IP the without netmask + * @since 1.1.0 + * @access public + * @static + */ + function removeNetmaskSpec($ip) + { + if (strpos($ip, '/') !== false) + { + list($addr, $nm) = explode('/', $ip); + } + else + { + $addr = $ip; + } + return $addr; + } + + /** + * Uncompresses an IPv6 address + * + * RFC 2373 allows you to compress zeros in an address to '::'. This + * function expects an valid IPv6 address and expands the '::' to + * the required zeros. + * + * Example: FF01::101 -> FF01:0:0:0:0:0:0:101 + * ::1 -> 0:0:0:0:0:0:0:1 + * + * @access public + * @static + * @param string $ip a valid IPv6-address (hex format) + * @return string the uncompressed IPv6-address (hex format) + */ + function Uncompress($ip) + { + $uip = SimplePie_Net_IPv6::removeNetmaskSpec($ip); + $c1 = -1; + $c2 = -1; + if (strpos($ip, '::') !== false) + { + list($ip1, $ip2) = explode('::', $ip); + if ($ip1 === '') + { + $c1 = -1; + } + else + { + $pos = 0; + if (($pos = substr_count($ip1, ':')) > 0) + { + $c1 = $pos; + } + else + { + $c1 = 0; + } + } + if ($ip2 === '') + { + $c2 = -1; + } + else + { + $pos = 0; + if (($pos = substr_count($ip2, ':')) > 0) + { + $c2 = $pos; + } + else + { + $c2 = 0; + } + } + if (strstr($ip2, '.')) + { + $c2++; + } + // :: + if ($c1 === -1 && $c2 === -1) + { + $uip = '0:0:0:0:0:0:0:0'; + } + // ::xxx + else if ($c1 === -1) + { + $fill = str_repeat('0:', 7 - $c2); + $uip = str_replace('::', $fill, $uip); + } + // xxx:: + else if ($c2 === -1) + { + $fill = str_repeat(':0', 7 - $c1); + $uip = str_replace('::', $fill, $uip); + } + // xxx::xxx + else + { + $fill = str_repeat(':0:', 6 - $c2 - $c1); + $uip = str_replace('::', $fill, $uip); + $uip = str_replace('::', ':', $uip); + } + } + return $uip; + } + + /** + * Splits an IPv6 address into the IPv6 and a possible IPv4 part + * + * RFC 2373 allows you to note the last two parts of an IPv6 address as + * an IPv4 compatible address + * + * Example: 0:0:0:0:0:0:13.1.68.3 + * 0:0:0:0:0:FFFF:129.144.52.38 + * + * @access public + * @static + * @param string $ip a valid IPv6-address (hex format) + * @return array [0] contains the IPv6 part, [1] the IPv4 part (hex format) + */ + function SplitV64($ip) + { + $ip = SimplePie_Net_IPv6::Uncompress($ip); + if (strstr($ip, '.')) + { + $pos = strrpos($ip, ':'); + $ip[$pos] = '_'; + $ipPart = explode('_', $ip); + return $ipPart; + } + else + { + return array($ip, ''); + } + } + + /** + * Checks an IPv6 address + * + * Checks if the given IP is IPv6-compatible + * + * @access public + * @static + * @param string $ip a valid IPv6-address + * @return bool true if $ip is an IPv6 address + */ + function checkIPv6($ip) + { + $ipPart = SimplePie_Net_IPv6::SplitV64($ip); + $count = 0; + if (!empty($ipPart[0])) + { + $ipv6 = explode(':', $ipPart[0]); + for ($i = 0; $i < count($ipv6); $i++) + { + $dec = hexdec($ipv6[$i]); + $hex = strtoupper(preg_replace('/^[0]{1,3}(.*[0-9a-fA-F])$/', '\\1', $ipv6[$i])); + if ($ipv6[$i] >= 0 && $dec <= 65535 && $hex === strtoupper(dechex($dec))) + { + $count++; + } + } + if ($count === 8) + { + return true; + } + elseif ($count === 6 && !empty($ipPart[1])) + { + $ipv4 = explode('.', $ipPart[1]); + $count = 0; + foreach ($ipv4 as $ipv4_part) + { + if ($ipv4_part >= 0 && $ipv4_part <= 255 && preg_match('/^\d{1,3}$/', $ipv4_part)) + { + $count++; + } + } + if ($count === 4) + { + return true; + } + } + else + { + return false; + } + + } + else + { + return false; + } + } +} + +/** + * Date Parser + * + * @package SimplePie + */ +class SimplePie_Parse_Date +{ + /** + * Input data + * + * @access protected + * @var string + */ + var $date; + + /** + * List of days, calendar day name => ordinal day number in the week + * + * @access protected + * @var array + */ + var $day = array( + // English + 'mon' => 1, + 'monday' => 1, + 'tue' => 2, + 'tuesday' => 2, + 'wed' => 3, + 'wednesday' => 3, + 'thu' => 4, + 'thursday' => 4, + 'fri' => 5, + 'friday' => 5, + 'sat' => 6, + 'saturday' => 6, + 'sun' => 7, + 'sunday' => 7, + // Dutch + 'maandag' => 1, + 'dinsdag' => 2, + 'woensdag' => 3, + 'donderdag' => 4, + 'vrijdag' => 5, + 'zaterdag' => 6, + 'zondag' => 7, + // French + 'lundi' => 1, + 'mardi' => 2, + 'mercredi' => 3, + 'jeudi' => 4, + 'vendredi' => 5, + 'samedi' => 6, + 'dimanche' => 7, + // German + 'montag' => 1, + 'dienstag' => 2, + 'mittwoch' => 3, + 'donnerstag' => 4, + 'freitag' => 5, + 'samstag' => 6, + 'sonnabend' => 6, + 'sonntag' => 7, + // Italian + 'lunedì' => 1, + 'martedì' => 2, + 'mercoledì' => 3, + 'giovedì' => 4, + 'venerdì' => 5, + 'sabato' => 6, + 'domenica' => 7, + // Spanish + 'lunes' => 1, + 'martes' => 2, + 'miércoles' => 3, + 'jueves' => 4, + 'viernes' => 5, + 'sábado' => 6, + 'domingo' => 7, + // Finnish + 'maanantai' => 1, + 'tiistai' => 2, + 'keskiviikko' => 3, + 'torstai' => 4, + 'perjantai' => 5, + 'lauantai' => 6, + 'sunnuntai' => 7, + // Hungarian + 'hétfő' => 1, + 'kedd' => 2, + 'szerda' => 3, + 'csütörtok' => 4, + 'péntek' => 5, + 'szombat' => 6, + 'vasárnap' => 7, + // Greek + 'Δευ' => 1, + 'Τρι' => 2, + 'Τετ' => 3, + 'Πεμ' => 4, + 'Παρ' => 5, + 'Σαβ' => 6, + 'Κυρ' => 7, + ); + + /** + * List of months, calendar month name => calendar month number + * + * @access protected + * @var array + */ + var $month = array( + // English + 'jan' => 1, + 'january' => 1, + 'feb' => 2, + 'february' => 2, + 'mar' => 3, + 'march' => 3, + 'apr' => 4, + 'april' => 4, + 'may' => 5, + // No long form of May + 'jun' => 6, + 'june' => 6, + 'jul' => 7, + 'july' => 7, + 'aug' => 8, + 'august' => 8, + 'sep' => 9, + 'september' => 8, + 'oct' => 10, + 'october' => 10, + 'nov' => 11, + 'november' => 11, + 'dec' => 12, + 'december' => 12, + // Dutch + 'januari' => 1, + 'februari' => 2, + 'maart' => 3, + 'april' => 4, + 'mei' => 5, + 'juni' => 6, + 'juli' => 7, + 'augustus' => 8, + 'september' => 9, + 'oktober' => 10, + 'november' => 11, + 'december' => 12, + // French + 'janvier' => 1, + 'février' => 2, + 'mars' => 3, + 'avril' => 4, + 'mai' => 5, + 'juin' => 6, + 'juillet' => 7, + 'août' => 8, + 'septembre' => 9, + 'octobre' => 10, + 'novembre' => 11, + 'décembre' => 12, + // German + 'januar' => 1, + 'februar' => 2, + 'märz' => 3, + 'april' => 4, + 'mai' => 5, + 'juni' => 6, + 'juli' => 7, + 'august' => 8, + 'september' => 9, + 'oktober' => 10, + 'november' => 11, + 'dezember' => 12, + // Italian + 'gennaio' => 1, + 'febbraio' => 2, + 'marzo' => 3, + 'aprile' => 4, + 'maggio' => 5, + 'giugno' => 6, + 'luglio' => 7, + 'agosto' => 8, + 'settembre' => 9, + 'ottobre' => 10, + 'novembre' => 11, + 'dicembre' => 12, + // Spanish + 'enero' => 1, + 'febrero' => 2, + 'marzo' => 3, + 'abril' => 4, + 'mayo' => 5, + 'junio' => 6, + 'julio' => 7, + 'agosto' => 8, + 'septiembre' => 9, + 'setiembre' => 9, + 'octubre' => 10, + 'noviembre' => 11, + 'diciembre' => 12, + // Finnish + 'tammikuu' => 1, + 'helmikuu' => 2, + 'maaliskuu' => 3, + 'huhtikuu' => 4, + 'toukokuu' => 5, + 'kesäkuu' => 6, + 'heinäkuu' => 7, + 'elokuu' => 8, + 'suuskuu' => 9, + 'lokakuu' => 10, + 'marras' => 11, + 'joulukuu' => 12, + // Hungarian + 'január' => 1, + 'február' => 2, + 'március' => 3, + 'április' => 4, + 'május' => 5, + 'június' => 6, + 'július' => 7, + 'augusztus' => 8, + 'szeptember' => 9, + 'október' => 10, + 'november' => 11, + 'december' => 12, + // Greek + 'Ιαν' => 1, + 'Φεβ' => 2, + 'Μάώ' => 3, + 'Μαώ' => 3, + 'Απρ' => 4, + 'Μάι' => 5, + 'Μαϊ' => 5, + 'Μαι' => 5, + 'Ιούν' => 6, + 'Ιον' => 6, + 'Ιούλ' => 7, + 'Ιολ' => 7, + 'Αύγ' => 8, + 'Αυγ' => 8, + 'Σεπ' => 9, + 'Οκτ' => 10, + 'Νοέ' => 11, + 'Δεκ' => 12, + ); + + /** + * List of timezones, abbreviation => offset from UTC + * + * @access protected + * @var array + */ + var $timezone = array( + 'ACDT' => 37800, + 'ACIT' => 28800, + 'ACST' => 34200, + 'ACT' => -18000, + 'ACWDT' => 35100, + 'ACWST' => 31500, + 'AEDT' => 39600, + 'AEST' => 36000, + 'AFT' => 16200, + 'AKDT' => -28800, + 'AKST' => -32400, + 'AMDT' => 18000, + 'AMT' => -14400, + 'ANAST' => 46800, + 'ANAT' => 43200, + 'ART' => -10800, + 'AZOST' => -3600, + 'AZST' => 18000, + 'AZT' => 14400, + 'BIOT' => 21600, + 'BIT' => -43200, + 'BOT' => -14400, + 'BRST' => -7200, + 'BRT' => -10800, + 'BST' => 3600, + 'BTT' => 21600, + 'CAST' => 18000, + 'CAT' => 7200, + 'CCT' => 23400, + 'CDT' => -18000, + 'CEDT' => 7200, + 'CET' => 3600, + 'CGST' => -7200, + 'CGT' => -10800, + 'CHADT' => 49500, + 'CHAST' => 45900, + 'CIST' => -28800, + 'CKT' => -36000, + 'CLDT' => -10800, + 'CLST' => -14400, + 'COT' => -18000, + 'CST' => -21600, + 'CVT' => -3600, + 'CXT' => 25200, + 'DAVT' => 25200, + 'DTAT' => 36000, + 'EADT' => -18000, + 'EAST' => -21600, + 'EAT' => 10800, + 'ECT' => -18000, + 'EDT' => -14400, + 'EEST' => 10800, + 'EET' => 7200, + 'EGT' => -3600, + 'EKST' => 21600, + 'EST' => -18000, + 'FJT' => 43200, + 'FKDT' => -10800, + 'FKST' => -14400, + 'FNT' => -7200, + 'GALT' => -21600, + 'GEDT' => 14400, + 'GEST' => 10800, + 'GFT' => -10800, + 'GILT' => 43200, + 'GIT' => -32400, + 'GST' => 14400, + 'GST' => -7200, + 'GYT' => -14400, + 'HAA' => -10800, + 'HAC' => -18000, + 'HADT' => -32400, + 'HAE' => -14400, + 'HAP' => -25200, + 'HAR' => -21600, + 'HAST' => -36000, + 'HAT' => -9000, + 'HAY' => -28800, + 'HKST' => 28800, + 'HMT' => 18000, + 'HNA' => -14400, + 'HNC' => -21600, + 'HNE' => -18000, + 'HNP' => -28800, + 'HNR' => -25200, + 'HNT' => -12600, + 'HNY' => -32400, + 'IRDT' => 16200, + 'IRKST' => 32400, + 'IRKT' => 28800, + 'IRST' => 12600, + 'JFDT' => -10800, + 'JFST' => -14400, + 'JST' => 32400, + 'KGST' => 21600, + 'KGT' => 18000, + 'KOST' => 39600, + 'KOVST' => 28800, + 'KOVT' => 25200, + 'KRAST' => 28800, + 'KRAT' => 25200, + 'KST' => 32400, + 'LHDT' => 39600, + 'LHST' => 37800, + 'LINT' => 50400, + 'LKT' => 21600, + 'MAGST' => 43200, + 'MAGT' => 39600, + 'MAWT' => 21600, + 'MDT' => -21600, + 'MESZ' => 7200, + 'MEZ' => 3600, + 'MHT' => 43200, + 'MIT' => -34200, + 'MNST' => 32400, + 'MSDT' => 14400, + 'MSST' => 10800, + 'MST' => -25200, + 'MUT' => 14400, + 'MVT' => 18000, + 'MYT' => 28800, + 'NCT' => 39600, + 'NDT' => -9000, + 'NFT' => 41400, + 'NMIT' => 36000, + 'NOVST' => 25200, + 'NOVT' => 21600, + 'NPT' => 20700, + 'NRT' => 43200, + 'NST' => -12600, + 'NUT' => -39600, + 'NZDT' => 46800, + 'NZST' => 43200, + 'OMSST' => 25200, + 'OMST' => 21600, + 'PDT' => -25200, + 'PET' => -18000, + 'PETST' => 46800, + 'PETT' => 43200, + 'PGT' => 36000, + 'PHOT' => 46800, + 'PHT' => 28800, + 'PKT' => 18000, + 'PMDT' => -7200, + 'PMST' => -10800, + 'PONT' => 39600, + 'PST' => -28800, + 'PWT' => 32400, + 'PYST' => -10800, + 'PYT' => -14400, + 'RET' => 14400, + 'ROTT' => -10800, + 'SAMST' => 18000, + 'SAMT' => 14400, + 'SAST' => 7200, + 'SBT' => 39600, + 'SCDT' => 46800, + 'SCST' => 43200, + 'SCT' => 14400, + 'SEST' => 3600, + 'SGT' => 28800, + 'SIT' => 28800, + 'SRT' => -10800, + 'SST' => -39600, + 'SYST' => 10800, + 'SYT' => 7200, + 'TFT' => 18000, + 'THAT' => -36000, + 'TJT' => 18000, + 'TKT' => -36000, + 'TMT' => 18000, + 'TOT' => 46800, + 'TPT' => 32400, + 'TRUT' => 36000, + 'TVT' => 43200, + 'TWT' => 28800, + 'UYST' => -7200, + 'UYT' => -10800, + 'UZT' => 18000, + 'VET' => -14400, + 'VLAST' => 39600, + 'VLAT' => 36000, + 'VOST' => 21600, + 'VUT' => 39600, + 'WAST' => 7200, + 'WAT' => 3600, + 'WDT' => 32400, + 'WEST' => 3600, + 'WFT' => 43200, + 'WIB' => 25200, + 'WIT' => 32400, + 'WITA' => 28800, + 'WKST' => 18000, + 'WST' => 28800, + 'YAKST' => 36000, + 'YAKT' => 32400, + 'YAPT' => 36000, + 'YEKST' => 21600, + 'YEKT' => 18000, + ); + + /** + * Cached PCRE for SimplePie_Parse_Date::$day + * + * @access protected + * @var string + */ + var $day_pcre; + + /** + * Cached PCRE for SimplePie_Parse_Date::$month + * + * @access protected + * @var string + */ + var $month_pcre; + + /** + * Array of user-added callback methods + * + * @access private + * @var array + */ + var $built_in = array(); + + /** + * Array of user-added callback methods + * + * @access private + * @var array + */ + var $user = array(); + + /** + * Create new SimplePie_Parse_Date object, and set self::day_pcre, + * self::month_pcre, and self::built_in + * + * @access private + */ + function SimplePie_Parse_Date() + { + $this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')'; + $this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')'; + + static $cache; + if (!isset($cache[get_class($this)])) + { + $all_methods = get_class_methods($this); + + foreach ($all_methods as $method) + { + if (strtolower(substr($method, 0, 5)) === 'date_') + { + $cache[get_class($this)][] = $method; + } + } + } + + foreach ($cache[get_class($this)] as $method) + { + $this->built_in[] = $method; + } + } + + /** + * Get the object + * + * @access public + */ + function get() + { + static $object; + if (!$object) + { + $object =& new SimplePie_Parse_Date; + } + return $object; + } + + /** + * Parse a date + * + * @final + * @access public + * @param string $date Date to parse + * @return int Timestamp corresponding to date string, or false on failure + */ + function parse($date) + { + foreach ($this->user as $method) + { + if (($returned = call_user_func($method, $date)) !== false) + { + return $returned; + } + } + + foreach ($this->built_in as $method) + { + if (($returned = call_user_func(array(&$this, $method), $date)) !== false) + { + return $returned; + } + } + + return false; + } + + /** + * Add a callback method to parse a date + * + * @final + * @access public + * @param callback $callback + */ + function add_callback($callback) + { + if (is_callable($callback)) + { + $this->user[] = $callback; + } + else + { + trigger_error('User-supplied function must be a valid callback', E_USER_WARNING); + } + } + + /** + * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as + * well as allowing any of upper or lower case "T", horizontal tabs, or + * spaces to be used as the time seperator (including more than one)) + * + * @access protected + * @return int Timestamp + */ + function date_w3cdtf($date) + { + static $pcre; + if (!$pcre) + { + $year = '([0-9]{4})'; + $month = $day = $hour = $minute = $second = '([0-9]{2})'; + $decimal = '([0-9]*)'; + $zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))'; + $pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/'; + } + if (preg_match($pcre, $date, $match)) + { + /* + Capturing subpatterns: + 1: Year + 2: Month + 3: Day + 4: Hour + 5: Minute + 6: Second + 7: Decimal fraction of a second + 8: Zulu + 9: Timezone ± + 10: Timezone hours + 11: Timezone minutes + */ + + // Fill in empty matches + for ($i = count($match); $i <= 3; $i++) + { + $match[$i] = '1'; + } + + for ($i = count($match); $i <= 7; $i++) + { + $match[$i] = '0'; + } + + // Numeric timezone + if (isset($match[9]) && $match[9] !== '') + { + $timezone = $match[10] * 3600; + $timezone += $match[11] * 60; + if ($match[9] === '-') + { + $timezone = 0 - $timezone; + } + } + else + { + $timezone = 0; + } + + // Convert the number of seconds to an integer, taking decimals into account + $second = round($match[6] + $match[7] / pow(10, strlen($match[7]))); + + return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone; + } + else + { + return false; + } + } + + /** + * Remove RFC822 comments + * + * @access protected + * @param string $data Data to strip comments from + * @return string Comment stripped string + */ + function remove_rfc2822_comments($string) + { + $string = (string) $string; + $position = 0; + $length = strlen($string); + $depth = 0; + + $output = ''; + + while ($position < $length && ($pos = strpos($string, '(', $position)) !== false) + { + $output .= substr($string, $position, $pos - $position); + $position = $pos + 1; + if ($string[$pos - 1] !== '\\') + { + $depth++; + while ($depth && $position < $length) + { + $position += strcspn($string, '()', $position); + if ($string[$position - 1] === '\\') + { + $position++; + continue; + } + elseif (isset($string[$position])) + { + switch ($string[$position]) + { + case '(': + $depth++; + break; + + case ')': + $depth--; + break; + } + $position++; + } + else + { + break; + } + } + } + else + { + $output .= '('; + } + } + $output .= substr($string, $position); + + return $output; + } + + /** + * Parse RFC2822's date format + * + * @access protected + * @return int Timestamp + */ + function date_rfc2822($date) + { + static $pcre; + if (!$pcre) + { + $wsp = '[\x09\x20]'; + $fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)'; + $optional_fws = $fws . '?'; + $day_name = $this->day_pcre; + $month = $this->month_pcre; + $day = '([0-9]{1,2})'; + $hour = $minute = $second = '([0-9]{2})'; + $year = '([0-9]{2,4})'; + $num_zone = '([+\-])([0-9]{2})([0-9]{2})'; + $character_zone = '([A-Z]{1,5})'; + $zone = '(?:' . $num_zone . '|' . $character_zone . ')'; + $pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i'; + } + if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match)) + { + /* + Capturing subpatterns: + 1: Day name + 2: Day + 3: Month + 4: Year + 5: Hour + 6: Minute + 7: Second + 8: Timezone ± + 9: Timezone hours + 10: Timezone minutes + 11: Alphabetic timezone + */ + + // Find the month number + $month = $this->month[strtolower($match[3])]; + + // Numeric timezone + if ($match[8] !== '') + { + $timezone = $match[9] * 3600; + $timezone += $match[10] * 60; + if ($match[8] === '-') + { + $timezone = 0 - $timezone; + } + } + // Character timezone + elseif (isset($this->timezone[strtoupper($match[11])])) + { + $timezone = $this->timezone[strtoupper($match[11])]; + } + // Assume everything else to be -0000 + else + { + $timezone = 0; + } + + // Deal with 2/3 digit years + if ($match[4] < 50) + { + $match[4] += 2000; + } + elseif ($match[4] < 1000) + { + $match[4] += 1900; + } + + // Second is optional, if it is empty set it to zero + if ($match[7] !== '') + { + $second = $match[7]; + } + else + { + $second = 0; + } + + return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone; + } + else + { + return false; + } + } + + /** + * Parse RFC850's date format + * + * @access protected + * @return int Timestamp + */ + function date_rfc850($date) + { + static $pcre; + if (!$pcre) + { + $space = '[\x09\x20]+'; + $day_name = $this->day_pcre; + $month = $this->month_pcre; + $day = '([0-9]{1,2})'; + $year = $hour = $minute = $second = '([0-9]{2})'; + $zone = '([A-Z]{1,5})'; + $pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i'; + } + if (preg_match($pcre, $date, $match)) + { + /* + Capturing subpatterns: + 1: Day name + 2: Day + 3: Month + 4: Year + 5: Hour + 6: Minute + 7: Second + 8: Timezone + */ + + // Month + $month = $this->month[strtolower($match[3])]; + + // Character timezone + if (isset($this->timezone[strtoupper($match[8])])) + { + $timezone = $this->timezone[strtoupper($match[8])]; + } + // Assume everything else to be -0000 + else + { + $timezone = 0; + } + + // Deal with 2 digit year + if ($match[4] < 50) + { + $match[4] += 2000; + } + else + { + $match[4] += 1900; + } + + return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone; + } + else + { + return false; + } + } + + /** + * Parse C99's asctime()'s date format + * + * @access protected + * @return int Timestamp + */ + function date_asctime($date) + { + static $pcre; + if (!$pcre) + { + $space = '[\x09\x20]+'; + $wday_name = $this->day_pcre; + $mon_name = $this->month_pcre; + $day = '([0-9]{1,2})'; + $hour = $sec = $min = '([0-9]{2})'; + $year = '([0-9]{4})'; + $terminator = '\x0A?\x00?'; + $pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i'; + } + if (preg_match($pcre, $date, $match)) + { + /* + Capturing subpatterns: + 1: Day name + 2: Month + 3: Day + 4: Hour + 5: Minute + 6: Second + 7: Year + */ + + $month = $this->month[strtolower($match[2])]; + return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]); + } + else + { + return false; + } + } + + /** + * Parse dates using strtotime() + * + * @access protected + * @return int Timestamp + */ + function date_strtotime($date) + { + $strtotime = strtotime($date); + if ($strtotime === -1 || $strtotime === false) + { + return false; + } + else + { + return $strtotime; + } + } +} + +/** + * Content-type sniffing + * + * @package SimplePie + */ +class SimplePie_Content_Type_Sniffer +{ + /** + * File object + * + * @var SimplePie_File + * @access private + */ + var $file; + + /** + * Create an instance of the class with the input file + * + * @access public + * @param SimplePie_Content_Type_Sniffer $file Input file + */ + function SimplePie_Content_Type_Sniffer($file) + { + $this->file = $file; + } + + /** + * Get the Content-Type of the specified file + * + * @access public + * @return string Actual Content-Type + */ + function get_type() + { + if (isset($this->file->headers['content-type'])) + { + if (!isset($this->file->headers['content-encoding']) + && ($this->file->headers['content-type'] === 'text/plain' + || $this->file->headers['content-type'] === 'text/plain; charset=ISO-8859-1' + || $this->file->headers['content-type'] === 'text/plain; charset=iso-8859-1')) + { + return $this->text_or_binary(); + } + + if (($pos = strpos($this->file->headers['content-type'], ';')) !== false) + { + $official = substr($this->file->headers['content-type'], 0, $pos); + } + else + { + $official = $this->file->headers['content-type']; + } + $official = strtolower($official); + + if ($official === 'unknown/unknown' + || $official === 'application/unknown') + { + return $this->unknown(); + } + elseif (substr($official, -4) === '+xml' + || $official === 'text/xml' + || $official === 'application/xml') + { + return $official; + } + elseif (substr($official, 0, 6) === 'image/') + { + if ($return = $this->image()) + { + return $return; + } + else + { + return $official; + } + } + elseif ($official === 'text/html') + { + return $this->feed_or_html(); + } + else + { + return $official; + } + } + else + { + return $this->unknown(); + } + } + + /** + * Sniff text or binary + * + * @access private + * @return string Actual Content-Type + */ + function text_or_binary() + { + if (substr($this->file->body, 0, 2) === "\xFE\xFF" + || substr($this->file->body, 0, 2) === "\xFF\xFE" + || substr($this->file->body, 0, 4) === "\x00\x00\xFE\xFF" + || substr($this->file->body, 0, 3) === "\xEF\xBB\xBF") + { + return 'text/plain'; + } + elseif (preg_match('/[\x00-\x08\x0E-\x1A\x1C-\x1F]/', $this->file->body)) + { + return 'application/octect-stream'; + } + else + { + return 'text/plain'; + } + } + + /** + * Sniff unknown + * + * @access private + * @return string Actual Content-Type + */ + function unknown() + { + $ws = strspn($this->file->body, "\x09\x0A\x0B\x0C\x0D\x20"); + if (strtolower(substr($this->file->body, $ws, 14)) === '<!doctype html' + || strtolower(substr($this->file->body, $ws, 5)) === '<html' + || strtolower(substr($this->file->body, $ws, 7)) === '<script') + { + return 'text/html'; + } + elseif (substr($this->file->body, 0, 5) === '%PDF-') + { + return 'application/pdf'; + } + elseif (substr($this->file->body, 0, 11) === '%!PS-Adobe-') + { + return 'application/postscript'; + } + elseif (substr($this->file->body, 0, 6) === 'GIF87a' + || substr($this->file->body, 0, 6) === 'GIF89a') + { + return 'image/gif'; + } + elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A") + { + return 'image/png'; + } + elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF") + { + return 'image/jpeg'; + } + elseif (substr($this->file->body, 0, 2) === "\x42\x4D") + { + return 'image/bmp'; + } + else + { + return $this->text_or_binary(); + } + } + + /** + * Sniff images + * + * @access private + * @return string Actual Content-Type + */ + function image() + { + if (substr($this->file->body, 0, 6) === 'GIF87a' + || substr($this->file->body, 0, 6) === 'GIF89a') + { + return 'image/gif'; + } + elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A") + { + return 'image/png'; + } + elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF") + { + return 'image/jpeg'; + } + elseif (substr($this->file->body, 0, 2) === "\x42\x4D") + { + return 'image/bmp'; + } + else + { + return false; + } + } + + /** + * Sniff HTML + * + * @access private + * @return string Actual Content-Type + */ + function feed_or_html() + { + $len = strlen($this->file->body); + $pos = strspn($this->file->body, "\x09\x0A\x0D\x20"); + + while ($pos < $len) + { + switch ($this->file->body[$pos]) + { + case "\x09": + case "\x0A": + case "\x0D": + case "\x20": + $pos += strspn($this->file->body, "\x09\x0A\x0D\x20", $pos); + continue 2; + + case '<': + $pos++; + break; + + default: + return 'text/html'; + } + + if (substr($this->file->body, $pos, 3) === '!--') + { + $pos += 3; + if ($pos < $len && ($pos = strpos($this->file->body, '-->', $pos)) !== false) + { + $pos += 3; + } + else + { + return 'text/html'; + } + } + elseif (substr($this->file->body, $pos, 1) === '!') + { + if ($pos < $len && ($pos = strpos($this->file->body, '>', $pos)) !== false) + { + $pos++; + } + else + { + return 'text/html'; + } + } + elseif (substr($this->file->body, $pos, 1) === '?') + { + if ($pos < $len && ($pos = strpos($this->file->body, '?>', $pos)) !== false) + { + $pos += 2; + } + else + { + return 'text/html'; + } + } + elseif (substr($this->file->body, $pos, 3) === 'rss' + || substr($this->file->body, $pos, 7) === 'rdf:RDF') + { + return 'application/rss+xml'; + } + elseif (substr($this->file->body, $pos, 4) === 'feed') + { + return 'application/atom+xml'; + } + else + { + return 'text/html'; + } + } + + return 'text/html'; + } +} + +/** + * Parses the XML Declaration + * + * @package SimplePie + */ +class SimplePie_XML_Declaration_Parser +{ + /** + * XML Version + * + * @access public + * @var string + */ + var $version = '1.0'; + + /** + * Encoding + * + * @access public + * @var string + */ + var $encoding = 'UTF-8'; + + /** + * Standalone + * + * @access public + * @var bool + */ + var $standalone = false; + + /** + * Current state of the state machine + * + * @access private + * @var string + */ + var $state = 'before_version_name'; + + /** + * Input data + * + * @access private + * @var string + */ + var $data = ''; + + /** + * Input data length (to avoid calling strlen() everytime this is needed) + * + * @access private + * @var int + */ + var $data_length = 0; + + /** + * Current position of the pointer + * + * @var int + * @access private + */ + var $position = 0; + + /** + * Create an instance of the class with the input data + * + * @access public + * @param string $data Input data + */ + function SimplePie_XML_Declaration_Parser($data) + { + $this->data = $data; + $this->data_length = strlen($this->data); + } + + /** + * Parse the input data + * + * @access public + * @return bool true on success, false on failure + */ + function parse() + { + while ($this->state && $this->state !== 'emit' && $this->has_data()) + { + $state = $this->state; + $this->$state(); + } + $this->data = ''; + if ($this->state === 'emit') + { + return true; + } + else + { + $this->version = ''; + $this->encoding = ''; + $this->standalone = ''; + return false; + } + } + + /** + * Check whether there is data beyond the pointer + * + * @access private + * @return bool true if there is further data, false if not + */ + function has_data() + { + return (bool) ($this->position < $this->data_length); + } + + /** + * Advance past any whitespace + * + * @return int Number of whitespace characters passed + */ + function skip_whitespace() + { + $whitespace = strspn($this->data, "\x09\x0A\x0D\x20", $this->position); + $this->position += $whitespace; + return $whitespace; + } + + /** + * Read value + */ + function get_value() + { + $quote = substr($this->data, $this->position, 1); + if ($quote === '"' || $quote === "'") + { + $this->position++; + $len = strcspn($this->data, $quote, $this->position); + if ($this->has_data()) + { + $value = substr($this->data, $this->position, $len); + $this->position += $len + 1; + return $value; + } + } + return false; + } + + function before_version_name() + { + if ($this->skip_whitespace()) + { + $this->state = 'version_name'; + } + else + { + $this->state = false; + } + } + + function version_name() + { + if (substr($this->data, $this->position, 7) === 'version') + { + $this->position += 7; + $this->skip_whitespace(); + $this->state = 'version_equals'; + } + else + { + $this->state = false; + } + } + + function version_equals() + { + if (substr($this->data, $this->position, 1) === '=') + { + $this->position++; + $this->skip_whitespace(); + $this->state = 'version_value'; + } + else + { + $this->state = false; + } + } + + function version_value() + { + if ($this->version = $this->get_value()) + { + $this->skip_whitespace(); + if ($this->has_data()) + { + $this->state = 'encoding_name'; + } + else + { + $this->state = 'emit'; + } + } + else + { + $this->state = false; + } + } + + function encoding_name() + { + if (substr($this->data, $this->position, 8) === 'encoding') + { + $this->position += 8; + $this->skip_whitespace(); + $this->state = 'encoding_equals'; + } + else + { + $this->state = 'standalone_name'; + } + } + + function encoding_equals() + { + if (substr($this->data, $this->position, 1) === '=') + { + $this->position++; + $this->skip_whitespace(); + $this->state = 'encoding_value'; + } + else + { + $this->state = false; + } + } + + function encoding_value() + { + if ($this->encoding = $this->get_value()) + { + $this->skip_whitespace(); + if ($this->has_data()) + { + $this->state = 'standalone_name'; + } + else + { + $this->state = 'emit'; + } + } + else + { + $this->state = false; + } + } + + function standalone_name() + { + if (substr($this->data, $this->position, 10) === 'standalone') + { + $this->position += 10; + $this->skip_whitespace(); + $this->state = 'standalone_equals'; + } + else + { + $this->state = false; + } + } + + function standalone_equals() + { + if (substr($this->data, $this->position, 1) === '=') + { + $this->position++; + $this->skip_whitespace(); + $this->state = 'standalone_value'; + } + else + { + $this->state = false; + } + } + + function standalone_value() + { + if ($standalone = $this->get_value()) + { + switch ($standalone) + { + case 'yes': + $this->standalone = true; + break; + + case 'no': + $this->standalone = false; + break; + + default: + $this->state = false; + return; + } + + $this->skip_whitespace(); + if ($this->has_data()) + { + $this->state = false; + } + else + { + $this->state = 'emit'; + } + } + else + { + $this->state = false; + } + } +} + +class SimplePie_Locator +{ + var $useragent; + var $timeout; + var $file; + var $local = array(); + var $elsewhere = array(); + var $file_class = 'SimplePie_File'; + var $cached_entities = array(); + var $http_base; + var $base; + var $base_location = 0; + var $checked_feeds = 0; + var $max_checked_feeds = 10; + var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer'; + + function SimplePie_Locator(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File', $max_checked_feeds = 10, $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer') + { + $this->file =& $file; + $this->file_class = $file_class; + $this->useragent = $useragent; + $this->timeout = $timeout; + $this->max_checked_feeds = $max_checked_feeds; + $this->content_type_sniffer_class = $content_type_sniffer_class; + } + + function find($type = SIMPLEPIE_LOCATOR_ALL, &$working) + { + if ($this->is_feed($this->file)) + { + return $this->file; + } + + if ($this->file->method & SIMPLEPIE_FILE_SOURCE_REMOTE) + { + $sniffer =& new $this->content_type_sniffer_class($this->file); + if ($sniffer->get_type() !== 'text/html') + { + return null; + } + } + + if ($type & ~SIMPLEPIE_LOCATOR_NONE) + { + $this->get_base(); + } + + if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery()) + { + return $working[0]; + } + + if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links()) + { + if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local)) + { + return $working; + } + + if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local)) + { + return $working; + } + + if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere)) + { + return $working; + } + + if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere)) + { + return $working; + } + } + return null; + } + + function is_feed(&$file) + { + if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE) + { + $sniffer =& new $this->content_type_sniffer_class($file); + $sniffed = $sniffer->get_type(); + if (in_array($sniffed, array('application/rss+xml', 'application/rdf+xml', 'text/rdf', 'application/atom+xml', 'text/xml', 'application/xml'))) + { + return true; + } + else + { + return false; + } + } + elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL) + { + return true; + } + else + { + return false; + } + } + + function get_base() + { + $this->http_base = $this->file->url; + $this->base = $this->http_base; + $elements = SimplePie_Misc::get_element('base', $this->file->body); + foreach ($elements as $element) + { + if ($element['attribs']['href']['data'] !== '') + { + $this->base = SimplePie_Misc::absolutize_url(trim($element['attribs']['href']['data']), $this->http_base); + $this->base_location = $element['offset']; + break; + } + } + } + + function autodiscovery() + { + $links = array_merge(SimplePie_Misc::get_element('link', $this->file->body), SimplePie_Misc::get_element('a', $this->file->body), SimplePie_Misc::get_element('area', $this->file->body)); + $done = array(); + $feeds = array(); + foreach ($links as $link) + { + if ($this->checked_feeds === $this->max_checked_feeds) + { + break; + } + if (isset($link['attribs']['href']['data']) && isset($link['attribs']['rel']['data'])) + { + $rel = array_unique(SimplePie_Misc::space_seperated_tokens(strtolower($link['attribs']['rel']['data']))); + + if ($this->base_location < $link['offset']) + { + $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base); + } + else + { + $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base); + } + + if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !empty($link['attribs']['type']['data']) && in_array(strtolower(SimplePie_Misc::parse_mime($link['attribs']['type']['data'])), array('application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href])) + { + $this->checked_feeds++; + $feed =& new $this->file_class($href, $this->timeout, 5, null, $this->useragent); + if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed)) + { + $feeds[$href] = $feed; + } + } + $done[] = $href; + } + } + + if (!empty($feeds)) + { + return array_values($feeds); + } + else { + return null; + } + } + + function get_links() + { + $links = SimplePie_Misc::get_element('a', $this->file->body); + foreach ($links as $link) + { + if (isset($link['attribs']['href']['data'])) + { + $href = trim($link['attribs']['href']['data']); + $parsed = SimplePie_Misc::parse_url($href); + if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme'])) + { + if ($this->base_location < $link['offset']) + { + $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base); + } + else + { + $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base); + } + + $current = SimplePie_Misc::parse_url($this->file->url); + + if ($parsed['authority'] === '' || $parsed['authority'] === $current['authority']) + { + $this->local[] = $href; + } + else + { + $this->elsewhere[] = $href; + } + } + } + } + $this->local = array_unique($this->local); + $this->elsewhere = array_unique($this->elsewhere); + if (!empty($this->local) || !empty($this->elsewhere)) + { + return true; + } + return null; + } + + function extension(&$array) + { + foreach ($array as $key => $value) + { + if ($this->checked_feeds === $this->max_checked_feeds) + { + break; + } + if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml'))) + { + $this->checked_feeds++; + $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); + if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed)) + { + return $feed; + } + else + { + unset($array[$key]); + } + } + } + return null; + } + + function body(&$array) + { + foreach ($array as $key => $value) + { + if ($this->checked_feeds === $this->max_checked_feeds) + { + break; + } + if (preg_match('/(rss|rdf|atom|xml)/i', $value)) + { + $this->checked_feeds++; + $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); + if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed)) + { + return $feed; + } + else + { + unset($array[$key]); + } + } + } + return null; + } +} + +class SimplePie_Parser +{ + var $error_code; + var $error_string; + var $current_line; + var $current_column; + var $current_byte; + var $separator = ' '; + var $namespace = array(''); + var $element = array(''); + var $xml_base = array(''); + var $xml_base_explicit = array(false); + var $xml_lang = array(''); + var $data = array(); + var $datas = array(array()); + var $current_xhtml_construct = -1; + var $encoding; + + function parse(&$data, $encoding) + { + // Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character + if (strtoupper($encoding) === 'US-ASCII') + { + $this->encoding = 'UTF-8'; + } + else + { + $this->encoding = $encoding; + } + + // Strip BOM: + // UTF-32 Big Endian BOM + if (substr($data, 0, 4) === "\x00\x00\xFE\xFF") + { + $data = substr($data, 4); + } + // UTF-32 Little Endian BOM + elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00") + { + $data = substr($data, 4); + } + // UTF-16 Big Endian BOM + elseif (substr($data, 0, 2) === "\xFE\xFF") + { + $data = substr($data, 2); + } + // UTF-16 Little Endian BOM + elseif (substr($data, 0, 2) === "\xFF\xFE") + { + $data = substr($data, 2); + } + // UTF-8 BOM + elseif (substr($data, 0, 3) === "\xEF\xBB\xBF") + { + $data = substr($data, 3); + } + + if (substr($data, 0, 5) === '<?xml' && strspn(substr($data, 5, 1), "\x09\x0A\x0D\x20") && ($pos = strpos($data, '?>')) !== false) + { + $declaration =& new SimplePie_XML_Declaration_Parser(substr($data, 5, $pos - 5)); + if ($declaration->parse()) + { + $data = substr($data, $pos + 2); + $data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' . $data; + } + else + { + $this->error_string = 'SimplePie bug! Please report this!'; + return false; + } + } + + $return = true; + + static $xml_is_sane = null; + if ($xml_is_sane === null) + { + $parser_check = xml_parser_create(); + xml_parse_into_struct($parser_check, '<foo>&</foo>', $values); + xml_parser_free($parser_check); + $xml_is_sane = isset($values[0]['value']); + } + + // Create the parser + if ($xml_is_sane) + { + $xml = xml_parser_create_ns($this->encoding, $this->separator); + xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1); + xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, 0); + xml_set_object($xml, $this); + xml_set_character_data_handler($xml, 'cdata'); + xml_set_element_handler($xml, 'tag_open', 'tag_close'); + + // Parse! + if (!xml_parse($xml, $data, true)) + { + $this->error_code = xml_get_error_code($xml); + $this->error_string = xml_error_string($this->error_code); + $return = false; + } + $this->current_line = xml_get_current_line_number($xml); + $this->current_column = xml_get_current_column_number($xml); + $this->current_byte = xml_get_current_byte_index($xml); + xml_parser_free($xml); + return $return; + } + else + { + libxml_clear_errors(); + $xml =& new XMLReader(); + $xml->xml($data); + while (@$xml->read()) + { + switch ($xml->nodeType) + { + + case constant('XMLReader::END_ELEMENT'): + if ($xml->namespaceURI !== '') + { + $tagName = "{$xml->namespaceURI}{$this->separator}{$xml->localName}"; + } + else + { + $tagName = $xml->localName; + } + $this->tag_close(null, $tagName); + break; + case constant('XMLReader::ELEMENT'): + $empty = $xml->isEmptyElement; + if ($xml->namespaceURI !== '') + { + $tagName = "{$xml->namespaceURI}{$this->separator}{$xml->localName}"; + } + else + { + $tagName = $xml->localName; + } + $attributes = array(); + while ($xml->moveToNextAttribute()) + { + if ($xml->namespaceURI !== '') + { + $attrName = "{$xml->namespaceURI}{$this->separator}{$xml->localName}"; + } + else + { + $attrName = $xml->localName; + } + $attributes[$attrName] = $xml->value; + } + $this->tag_open(null, $tagName, $attributes); + if ($empty) + { + $this->tag_close(null, $tagName); + } + break; + case constant('XMLReader::TEXT'): + + case constant('XMLReader::CDATA'): + $this->cdata(null, $xml->value); + break; + } + } + if ($error = libxml_get_last_error()) + { + $this->error_code = $error->code; + $this->error_string = $error->message; + $this->current_line = $error->line; + $this->current_column = $error->column; + return false; + } + else + { + return true; + } + } + } + + function get_error_code() + { + return $this->error_code; + } + + function get_error_string() + { + return $this->error_string; + } + + function get_current_line() + { + return $this->current_line; + } + + function get_current_column() + { + return $this->current_column; + } + + function get_current_byte() + { + return $this->current_byte; + } + + function get_data() + { + return $this->data; + } + + function tag_open($parser, $tag, $attributes) + { + list($this->namespace[], $this->element[]) = $this->split_ns($tag); + + $attribs = array(); + foreach ($attributes as $name => $value) + { + list($attrib_namespace, $attribute) = $this->split_ns($name); + $attribs[$attrib_namespace][$attribute] = $value; + } + + if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base'])) + { + $this->xml_base[] = SimplePie_Misc::absolutize_url($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base)); + $this->xml_base_explicit[] = true; + } + else + { + $this->xml_base[] = end($this->xml_base); + $this->xml_base_explicit[] = end($this->xml_base_explicit); + } + + if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang'])) + { + $this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang']; + } + else + { + $this->xml_lang[] = end($this->xml_lang); + } + + if ($this->current_xhtml_construct >= 0) + { + $this->current_xhtml_construct++; + if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML) + { + $this->data['data'] .= '<' . end($this->element); + if (isset($attribs[''])) + { + foreach ($attribs[''] as $name => $value) + { + $this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"'; + } + } + $this->data['data'] .= '>'; + } + } + else + { + $this->datas[] =& $this->data; + $this->data =& $this->data['child'][end($this->namespace)][end($this->element)][]; + $this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang)); + if ((end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] === 'xml') + || (end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] === 'xhtml')) + { + $this->current_xhtml_construct = 0; + } + } + } + + function cdata($parser, $cdata) + { + if ($this->current_xhtml_construct >= 0) + { + $this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding); + } + else + { + $this->data['data'] .= $cdata; + } + } + + function tag_close($parser, $tag) + { + if ($this->current_xhtml_construct >= 0) + { + $this->current_xhtml_construct--; + if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param'))) + { + $this->data['data'] .= '</' . end($this->element) . '>'; + } + } + if ($this->current_xhtml_construct === -1) + { + $this->data =& $this->datas[count($this->datas) - 1]; + array_pop($this->datas); + } + + array_pop($this->element); + array_pop($this->namespace); + array_pop($this->xml_base); + array_pop($this->xml_base_explicit); + array_pop($this->xml_lang); + } + + function split_ns($string) + { + static $cache = array(); + if (!isset($cache[$string])) + { + if ($pos = strpos($string, $this->separator)) + { + static $separator_length; + if (!$separator_length) + { + $separator_length = strlen($this->separator); + } + $namespace = substr($string, 0, $pos); + $local_name = substr($string, $pos + $separator_length); + if (strtolower($namespace) === SIMPLEPIE_NAMESPACE_ITUNES) + { + $namespace = SIMPLEPIE_NAMESPACE_ITUNES; + } + + // Normalize the Media RSS namespaces + if ($namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG) + { + $namespace = SIMPLEPIE_NAMESPACE_MEDIARSS; + } + $cache[$string] = array($namespace, $local_name); + } + else + { + $cache[$string] = array('', $string); + } + } + return $cache[$string]; + } +} + +/** + * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags + */ +class SimplePie_Sanitize +{ + // Private vars + var $base; + + // Options + var $remove_div = true; + var $image_handler = ''; + var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'); + var $encode_instead_of_strip = false; + var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'); + var $strip_comments = false; + var $output_encoding = 'UTF-8'; + var $enable_cache = true; + var $cache_location = './cache'; + var $cache_name_function = 'md5'; + var $cache_class = 'SimplePie_Cache'; + var $file_class = 'SimplePie_File'; + var $timeout = 10; + var $useragent = ''; + var $force_fsockopen = false; + + var $replace_url_attributes = array( + 'a' => 'href', + 'area' => 'href', + 'blockquote' => 'cite', + 'del' => 'cite', + 'form' => 'action', + 'img' => array('longdesc', 'src'), + 'input' => 'src', + 'ins' => 'cite', + 'q' => 'cite' + ); + + function remove_div($enable = true) + { + $this->remove_div = (bool) $enable; + } + + function set_image_handler($page = false) + { + if ($page) + { + $this->image_handler = (string) $page; + } + else + { + $this->image_handler = false; + } + } + + function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache') + { + if (isset($enable_cache)) + { + $this->enable_cache = (bool) $enable_cache; + } + + if ($cache_location) + { + $this->cache_location = (string) $cache_location; + } + + if ($cache_name_function) + { + $this->cache_name_function = (string) $cache_name_function; + } + + if ($cache_class) + { + $this->cache_class = (string) $cache_class; + } + } + + function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false) + { + if ($file_class) + { + $this->file_class = (string) $file_class; + } + + if ($timeout) + { + $this->timeout = (string) $timeout; + } + + if ($useragent) + { + $this->useragent = (string) $useragent; + } + + if ($force_fsockopen) + { + $this->force_fsockopen = (string) $force_fsockopen; + } + } + + function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style')) + { + if ($tags) + { + if (is_array($tags)) + { + $this->strip_htmltags = $tags; + } + else + { + $this->strip_htmltags = explode(',', $tags); + } + } + else + { + $this->strip_htmltags = false; + } + } + + function encode_instead_of_strip($encode = false) + { + $this->encode_instead_of_strip = (bool) $encode; + } + + function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc')) + { + if ($attribs) + { + if (is_array($attribs)) + { + $this->strip_attributes = $attribs; + } + else + { + $this->strip_attributes = explode(',', $attribs); + } + } + else + { + $this->strip_attributes = false; + } + } + + function strip_comments($strip = false) + { + $this->strip_comments = (bool) $strip; + } + + function set_output_encoding($encoding = 'UTF-8') + { + $this->output_encoding = (string) $encoding; + } + + /** + * Set element/attribute key/value pairs of HTML attributes + * containing URLs that need to be resolved relative to the feed + * + * @access public + * @since 1.0 + * @param array $element_attribute Element/attribute key/value pairs + */ + function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite')) + { + $this->replace_url_attributes = (array) $element_attribute; + } + + function sanitize($data, $type, $base = '') + { + $data = trim($data); + if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI) + { + if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML) + { + if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data)) + { + $type |= SIMPLEPIE_CONSTRUCT_HTML; + } + else + { + $type |= SIMPLEPIE_CONSTRUCT_TEXT; + } + } + + if ($type & SIMPLEPIE_CONSTRUCT_BASE64) + { + $data = base64_decode($data); + } + + if ($type & SIMPLEPIE_CONSTRUCT_XHTML) + { + if ($this->remove_div) + { + $data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data); + $data = preg_replace('/<\/div>$/', '', $data); + } + else + { + $data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data); + } + } + + if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML)) + { + // Strip comments + if ($this->strip_comments) + { + $data = SimplePie_Misc::strip_comments($data); + } + + // Strip out HTML tags and attributes that might cause various security problems. + // Based on recommendations by Mark Pilgrim at: + // http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely + if ($this->strip_htmltags) + { + foreach ($this->strip_htmltags as $tag) + { + $pcre = "/<($tag)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$tag" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>|(\/)?>)/siU'; + while (preg_match($pcre, $data)) + { + $data = preg_replace_callback($pcre, array(&$this, 'do_strip_htmltags'), $data); + } + } + } + + if ($this->strip_attributes) + { + foreach ($this->strip_attributes as $attrib) + { + $data = preg_replace('/(<[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*)' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . trim($attrib) . '(?:\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>/', '\1\2\3>', $data); + } + } + + // Replace relative URLs + $this->base = $base; + foreach ($this->replace_url_attributes as $element => $attributes) + { + $data = $this->replace_urls($data, $element, $attributes); + } + + // If image handling (caching, etc.) is enabled, cache and rewrite all the image tags. + if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache) + { + $images = SimplePie_Misc::get_element('img', $data); + foreach ($images as $img) + { + if (isset($img['attribs']['src']['data'])) + { + $image_url = call_user_func($this->cache_name_function, $img['attribs']['src']['data']); + $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $image_url, 'spi'); + + if ($cache->load()) + { + $img['attribs']['src']['data'] = $this->image_handler . $image_url; + $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data); + } + else + { + $file =& new $this->file_class($img['attribs']['src']['data'], $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); + $headers = $file->headers; + + if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300))) + { + if ($cache->save(array('headers' => $file->headers, 'body' => $file->body))) + { + $img['attribs']['src']['data'] = $this->image_handler . $image_url; + $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data); + } + else + { + trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING); + } + } + } + } + } + } + + // Having (possibly) taken stuff out, there may now be whitespace at the beginning/end of the data + $data = trim($data); + } + + if ($type & SIMPLEPIE_CONSTRUCT_IRI) + { + $data = SimplePie_Misc::absolutize_url($data, $base); + } + + if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI)) + { + $data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8'); + } + + if ($this->output_encoding !== 'UTF-8') + { + $data = SimplePie_Misc::change_encoding($data, 'UTF-8', $this->output_encoding); + } + } + return $data; + } + + function replace_urls($data, $tag, $attributes) + { + if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags)) + { + $elements = SimplePie_Misc::get_element($tag, $data); + foreach ($elements as $element) + { + if (is_array($attributes)) + { + foreach ($attributes as $attribute) + { + if (isset($element['attribs'][$attribute]['data'])) + { + $element['attribs'][$attribute]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attribute]['data'], $this->base); + $new_element = SimplePie_Misc::element_implode($element); + $data = str_replace($element['full'], $new_element, $data); + $element['full'] = $new_element; + } + } + } + elseif (isset($element['attribs'][$attributes]['data'])) + { + $element['attribs'][$attributes]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attributes]['data'], $this->base); + $data = str_replace($element['full'], SimplePie_Misc::element_implode($element), $data); + } + } + } + return $data; + } + + function do_strip_htmltags($match) + { + if ($this->encode_instead_of_strip) + { + if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style'))) + { + $match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8'); + $match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8'); + return "<$match[1]$match[2]>$match[3]</$match[1]>"; + } + else + { + return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8'); + } + } + elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style'))) + { + return $match[4]; + } + else + { + return ''; + } + } +} + +?> diff --git a/simplepie/test/absolutize/RFC3986.5.4/README b/simplepie/test/absolutize/RFC3986.5.4/README new file mode 100644 index 0000000000..385dc74f8a --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/README @@ -0,0 +1 @@ +The tests enclosed within come from RFC 3986 section 5.4 and all share the same base URL \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/1.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/1.php new file mode 100644 index 0000000000..f55e62d8be --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/1.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_1 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../../../g'; + } + + function expected() + { + $this->expected = 'http://a/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/10.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/10.php new file mode 100644 index 0000000000..668cda63cd --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/10.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_10 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = './g/.'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/11.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/11.php new file mode 100644 index 0000000000..eda10a60bb --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/11.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_11 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g/./h'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g/h'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/12.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/12.php new file mode 100644 index 0000000000..b66d71f604 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/12.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_12 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g/../h'; + } + + function expected() + { + $this->expected = 'http://a/b/c/h'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/13.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/13.php new file mode 100644 index 0000000000..06b5e326ca --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/13.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_13 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g;x=1/./y'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g;x=1/y'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/14.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/14.php new file mode 100644 index 0000000000..4a40af5adc --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/14.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_14 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g;x=1/../y'; + } + + function expected() + { + $this->expected = 'http://a/b/c/y'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/15.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/15.php new file mode 100644 index 0000000000..bef790e701 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/15.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_15 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g?y/./x'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g?y/./x'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/16.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/16.php new file mode 100644 index 0000000000..932cda4b56 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/16.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_16 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g?y/../x'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g?y/../x'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/17.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/17.php new file mode 100644 index 0000000000..8d626b68ff --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/17.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_17 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g#s/./x'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g#s/./x'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/18.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/18.php new file mode 100644 index 0000000000..7a53018cf0 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/18.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_18 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g#s/../x'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g#s/../x'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/19.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/19.php new file mode 100644 index 0000000000..289c1abc26 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/19.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_19 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'http:g'; + } + + function expected() + { + $this->expected = 'http:g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/2.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/2.php new file mode 100644 index 0000000000..9a05345545 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/2.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_2 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../../../../g'; + } + + function expected() + { + $this->expected = 'http://a/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/3.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/3.php new file mode 100644 index 0000000000..f96f5468f4 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/3.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_3 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '/./g'; + } + + function expected() + { + $this->expected = 'http://a/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/4.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/4.php new file mode 100644 index 0000000000..64e359fe63 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/4.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_4 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '/../g'; + } + + function expected() + { + $this->expected = 'http://a/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/5.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/5.php new file mode 100644 index 0000000000..dfd8e42bee --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/5.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_5 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g.'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g.'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/6.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/6.php new file mode 100644 index 0000000000..3125b00448 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/6.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_6 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '.g'; + } + + function expected() + { + $this->expected = 'http://a/b/c/.g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/7.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/7.php new file mode 100644 index 0000000000..82f97b0ceb --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/7.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_7 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g..'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g..'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/8.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/8.php new file mode 100644 index 0000000000..836ede0769 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/8.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_8 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '..g'; + } + + function expected() + { + $this->expected = 'http://a/b/c/..g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/abnormal/9.php b/simplepie/test/absolutize/RFC3986.5.4/abnormal/9.php new file mode 100644 index 0000000000..4917d4ceb7 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/abnormal/9.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Abnormal_9 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = './../g'; + } + + function expected() + { + $this->expected = 'http://a/b/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/base.php b/simplepie/test/absolutize/RFC3986.5.4/base.php new file mode 100644 index 0000000000..913aeec9dd --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/base.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986 extends SimplePie_Absolutize_Test +{ + function SimplePie_Absolutize_Test_RFC3986() + { + // Ugly hack so it only applies to this and none of its children + if (!is_subclass_of($this, 'SimplePie_Absolutize_Test_RFC3986')) + { + $this->test = false; + } + // Only call the parent constructor if it exists + if (is_callable(array('parent', 'SimplePie_Absolutize_Test'))) + { + parent::SimplePie_Absolutize_Test(); + } + } + + function init() + { + $this->data['base'] = 'http://a/b/c/d;p?q'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/1.php b/simplepie/test/absolutize/RFC3986.5.4/normal/1.php new file mode 100644 index 0000000000..0550ff0304 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/1.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_1 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g:h'; + } + + function expected() + { + $this->expected = 'g:h'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/10.php b/simplepie/test/absolutize/RFC3986.5.4/normal/10.php new file mode 100644 index 0000000000..86eab935cc --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/10.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_10 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g#s'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g#s'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/11.php b/simplepie/test/absolutize/RFC3986.5.4/normal/11.php new file mode 100644 index 0000000000..caa262bff3 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/11.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_11 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g?y#s'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g?y#s'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/12.php b/simplepie/test/absolutize/RFC3986.5.4/normal/12.php new file mode 100644 index 0000000000..8425386a46 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/12.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_12 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = ';x'; + } + + function expected() + { + $this->expected = 'http://a/b/c/;x'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/13.php b/simplepie/test/absolutize/RFC3986.5.4/normal/13.php new file mode 100644 index 0000000000..8fc6249302 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/13.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_13 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g;x'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g;x'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/14.php b/simplepie/test/absolutize/RFC3986.5.4/normal/14.php new file mode 100644 index 0000000000..bef64c3c24 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/14.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_14 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g;x?y#s'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g;x?y#s'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/15.php b/simplepie/test/absolutize/RFC3986.5.4/normal/15.php new file mode 100644 index 0000000000..d3af1a4e5b --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/15.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_15 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = ''; + } + + function expected() + { + $this->expected = 'http://a/b/c/d;p?q'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/16.php b/simplepie/test/absolutize/RFC3986.5.4/normal/16.php new file mode 100644 index 0000000000..d511971e1d --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/16.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_16 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '.'; + } + + function expected() + { + $this->expected = 'http://a/b/c/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/17.php b/simplepie/test/absolutize/RFC3986.5.4/normal/17.php new file mode 100644 index 0000000000..0c4581bcce --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/17.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_17 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = './'; + } + + function expected() + { + $this->expected = 'http://a/b/c/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/18.php b/simplepie/test/absolutize/RFC3986.5.4/normal/18.php new file mode 100644 index 0000000000..8e25cc5d04 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/18.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_18 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '..'; + } + + function expected() + { + $this->expected = 'http://a/b/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/19.php b/simplepie/test/absolutize/RFC3986.5.4/normal/19.php new file mode 100644 index 0000000000..53cd164d7f --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/19.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_19 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../'; + } + + function expected() + { + $this->expected = 'http://a/b/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/2.php b/simplepie/test/absolutize/RFC3986.5.4/normal/2.php new file mode 100644 index 0000000000..c98f815e05 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/2.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_2 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/20.php b/simplepie/test/absolutize/RFC3986.5.4/normal/20.php new file mode 100644 index 0000000000..3a3348ad32 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/20.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_20 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../g'; + } + + function expected() + { + $this->expected = 'http://a/b/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/21.php b/simplepie/test/absolutize/RFC3986.5.4/normal/21.php new file mode 100644 index 0000000000..e6bd90001c --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/21.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_21 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../..'; + } + + function expected() + { + $this->expected = 'http://a/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/22.php b/simplepie/test/absolutize/RFC3986.5.4/normal/22.php new file mode 100644 index 0000000000..0a6cf97328 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/22.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_22 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../../'; + } + + function expected() + { + $this->expected = 'http://a/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/23.php b/simplepie/test/absolutize/RFC3986.5.4/normal/23.php new file mode 100644 index 0000000000..fcd90f01e0 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/23.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_23 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '../../g'; + } + + function expected() + { + $this->expected = 'http://a/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/3.php b/simplepie/test/absolutize/RFC3986.5.4/normal/3.php new file mode 100644 index 0000000000..d5401736cc --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/3.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_3 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = './g'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/4.php b/simplepie/test/absolutize/RFC3986.5.4/normal/4.php new file mode 100644 index 0000000000..9eff412aa4 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/4.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_4 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g/'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/5.php b/simplepie/test/absolutize/RFC3986.5.4/normal/5.php new file mode 100644 index 0000000000..82681cb64b --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/5.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_5 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '/g'; + } + + function expected() + { + $this->expected = 'http://a/g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/6.php b/simplepie/test/absolutize/RFC3986.5.4/normal/6.php new file mode 100644 index 0000000000..5aaef804bf --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/6.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_6 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '//g'; + } + + function expected() + { + $this->expected = 'http://g'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/7.php b/simplepie/test/absolutize/RFC3986.5.4/normal/7.php new file mode 100644 index 0000000000..e97ecd3729 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/7.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_7 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '?y'; + } + + function expected() + { + $this->expected = 'http://a/b/c/d;p?y'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/8.php b/simplepie/test/absolutize/RFC3986.5.4/normal/8.php new file mode 100644 index 0000000000..0ac6fe46c6 --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/8.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_8 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = 'g?y'; + } + + function expected() + { + $this->expected = 'http://a/b/c/g?y'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/RFC3986.5.4/normal/9.php b/simplepie/test/absolutize/RFC3986.5.4/normal/9.php new file mode 100644 index 0000000000..d790df845e --- /dev/null +++ b/simplepie/test/absolutize/RFC3986.5.4/normal/9.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Absolutize_Test_RFC3986_Normal_9 extends SimplePie_Absolutize_Test_RFC3986 +{ + function data() + { + $this->data['relative'] = '#s'; + } + + function expected() + { + $this->expected = 'http://a/b/c/d;p?q#s'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/1091.0.1.php b/simplepie/test/absolutize/SPtests/bugs/1091.0.1.php new file mode 100644 index 0000000000..5c781eeeae --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/1091.0.1.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_1091_Test_0_1 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://example.com'; + $this->data['relative'] = '//example.net'; + } + + function expected() + { + $this->expected = 'http://example.net'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/1091.0.php b/simplepie/test/absolutize/SPtests/bugs/1091.0.php new file mode 100644 index 0000000000..a81eb060d0 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/1091.0.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_1091_Test_0 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http:g'; + $this->data['relative'] = 'a'; + } + + function expected() + { + $this->expected = 'http:a'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/274.0.php b/simplepie/test/absolutize/SPtests/bugs/274.0.php new file mode 100644 index 0000000000..95bf7897c0 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/274.0.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_274_Test_0 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/'; + $this->data['relative'] = 'c'; + } + + function expected() + { + $this->expected = 'http://a/b/c'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/274.1.php b/simplepie/test/absolutize/SPtests/bugs/274.1.php new file mode 100644 index 0000000000..409b3feab7 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/274.1.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_274_Test_1 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/'; + $this->data['relative'] = 'b'; + } + + function expected() + { + $this->expected = 'http://a/b'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/274.2.php b/simplepie/test/absolutize/SPtests/bugs/274.2.php new file mode 100644 index 0000000000..c3b159e987 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/274.2.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_274_Test_2 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/'; + $this->data['relative'] = '/b'; + } + + function expected() + { + $this->expected = 'http://a/b'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/274.3.php b/simplepie/test/absolutize/SPtests/bugs/274.3.php new file mode 100644 index 0000000000..4b268e44fc --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/274.3.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_274_Test_3 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b'; + $this->data['relative'] = 'c'; + } + + function expected() + { + $this->expected = 'http://a/c'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/579.0.php b/simplepie/test/absolutize/SPtests/bugs/579.0.php new file mode 100644 index 0000000000..b899d973f4 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/579.0.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_579_Test_0 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/'; + $this->data['relative'] = "b\x0Ac"; + } + + function expected() + { + $this->expected = 'http://a/b/b%0Ac'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.0.php b/simplepie/test/absolutize/SPtests/bugs/691.0.php new file mode 100644 index 0000000000..1c268e65e2 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.0.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_0 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c'; + $this->data['relative'] = 'zero://a/b/c'; + } + + function expected() + { + $this->expected = 'zero://a/b/c'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.1.php b/simplepie/test/absolutize/SPtests/bugs/691.1.php new file mode 100644 index 0000000000..af7d04194a --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.1.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_1 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c'; + $this->data['relative'] = '//0'; + } + + function expected() + { + $this->expected = 'http://0'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.2.php b/simplepie/test/absolutize/SPtests/bugs/691.2.php new file mode 100644 index 0000000000..c3ce0855d6 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.2.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_2 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c'; + $this->data['relative'] = '0'; + } + + function expected() + { + $this->expected = 'http://a/b/0'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.3.php b/simplepie/test/absolutize/SPtests/bugs/691.3.php new file mode 100644 index 0000000000..2bfd95a1dd --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.3.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_3 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c'; + $this->data['relative'] = '?0'; + } + + function expected() + { + $this->expected = 'http://a/b/c?0'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.4.php b/simplepie/test/absolutize/SPtests/bugs/691.4.php new file mode 100644 index 0000000000..9c82198c60 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.4.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_4 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c'; + $this->data['relative'] = '#0'; + } + + function expected() + { + $this->expected = 'http://a/b/c#0'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.5.php b/simplepie/test/absolutize/SPtests/bugs/691.5.php new file mode 100644 index 0000000000..10a93b95bb --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.5.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_5 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'zero://a/b/c'; + $this->data['relative'] = 'd'; + } + + function expected() + { + $this->expected = 'zero://a/b/d'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.6.php b/simplepie/test/absolutize/SPtests/bugs/691.6.php new file mode 100644 index 0000000000..6a9ef397f0 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.6.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_6 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://0/b/c'; + $this->data['relative'] = 'd'; + } + + function expected() + { + $this->expected = 'http://0/b/d'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.7.php b/simplepie/test/absolutize/SPtests/bugs/691.7.php new file mode 100644 index 0000000000..ab51d74994 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.7.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_7 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c?0'; + $this->data['relative'] = 'd'; + } + + function expected() + { + $this->expected = 'http://a/b/d'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/691.8.php b/simplepie/test/absolutize/SPtests/bugs/691.8.php new file mode 100644 index 0000000000..4c1ee0eb84 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/691.8.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_691_Test_8 extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c#0'; + $this->data['relative'] = 'd'; + } + + function expected() + { + $this->expected = 'http://a/b/d'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/absolutize/SPtests/bugs/pct_encoding_invalid_second_char.php b/simplepie/test/absolutize/SPtests/bugs/pct_encoding_invalid_second_char.php new file mode 100644 index 0000000000..75dc2bb109 --- /dev/null +++ b/simplepie/test/absolutize/SPtests/bugs/pct_encoding_invalid_second_char.php @@ -0,0 +1,17 @@ +<?php + +class SimplePie_Absolutize_Test_Bug_Pct_Encoding_Invalid_Second_Char extends SimplePie_Absolutize_Test +{ + function data() + { + $this->data['base'] = 'http://a/b/c/d'; + $this->data['relative'] = 'f%0o'; + } + + function expected() + { + $this->expected = 'http://a/b/c/f%250o'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/background.gif b/simplepie/test/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..a18a1f902fa8b6f08b505ef9f03078684d4b8700 GIT binary patch literal 4536 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 V3KfiASQ@?P9F3uKUwL@I{ujn0accko literal 0 HcmV?d00001 diff --git a/simplepie/test/date/RFC3339/1.php b/simplepie/test/date/RFC3339/1.php new file mode 100644 index 0000000000..3ae32bcc6a --- /dev/null +++ b/simplepie/test/date/RFC3339/1.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC3339_1 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '1985-04-12T23:20:50.52Z'; + } + + function expected() + { + $this->expected = 482196051; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/RFC3339/2.php b/simplepie/test/date/RFC3339/2.php new file mode 100644 index 0000000000..682c48e9d1 --- /dev/null +++ b/simplepie/test/date/RFC3339/2.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC3339_2 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '1996-12-19T16:39:57-08:00'; + } + + function expected() + { + $this->expected = 851042397; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/RFC3339/3.php b/simplepie/test/date/RFC3339/3.php new file mode 100644 index 0000000000..241739a7a8 --- /dev/null +++ b/simplepie/test/date/RFC3339/3.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC3339_3 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '1996-12-20T00:39:57Z'; + } + + function expected() + { + $this->expected = 851042397; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/RFC3339/README b/simplepie/test/date/RFC3339/README new file mode 100644 index 0000000000..da6e9bd7ba --- /dev/null +++ b/simplepie/test/date/RFC3339/README @@ -0,0 +1 @@ +The tests enclosed within come from RFC 3339 section 5.8 \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/invalid/four_digit_year.php b/simplepie/test/date/SPtests/RFC2822/invalid/four_digit_year.php new file mode 100644 index 0000000000..b0208821fd --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/invalid/four_digit_year.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_Four_Digit_Year extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 1994 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/invalid/full_name_of_day.php b/simplepie/test/date/SPtests/RFC2822/invalid/full_name_of_day.php new file mode 100644 index 0000000000..9874d526fc --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/invalid/full_name_of_day.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_Full_Name_Of_Day extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Friday, 05 Nov 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/invalid/invalid_day.php b/simplepie/test/date/SPtests/RFC2822/invalid/invalid_day.php new file mode 100644 index 0000000000..0af95f3b67 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/invalid/invalid_day.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_Invalid_Day extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Vendredi, 05 Nov 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/invalid/invalid_timezone.php b/simplepie/test/date/SPtests/RFC2822/invalid/invalid_timezone.php new file mode 100644 index 0000000000..753633b3e1 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/invalid/invalid_timezone.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_Invalid_Timezone extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 UTC'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/invalid/mismatch_name_of_day.php b/simplepie/test/date/SPtests/RFC2822/invalid/mismatch_name_of_day.php new file mode 100644 index 0000000000..02054cdf62 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/invalid/mismatch_name_of_day.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_Mismatch_Name_Of_Day extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Mon, 05 Nov 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/1.php b/simplepie/test/date/SPtests/RFC2822/valid/1.php new file mode 100644 index 0000000000..c8a65b6287 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/1.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_1 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/10.php b/simplepie/test/date/SPtests/RFC2822/valid/10.php new file mode 100644 index 0000000000..fbae6451d2 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/10.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_10 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 06:15:30 MST'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/11.php b/simplepie/test/date/SPtests/RFC2822/valid/11.php new file mode 100644 index 0000000000..635fe2a986 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/11.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_11 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 07:15:30 MDT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/12.php b/simplepie/test/date/SPtests/RFC2822/valid/12.php new file mode 100644 index 0000000000..7afa82e597 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/12.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_12 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 05:15:30 PST'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/13.php b/simplepie/test/date/SPtests/RFC2822/valid/13.php new file mode 100644 index 0000000000..dfdaa34669 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/13.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_13 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 06:15:30 PDT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/14.php b/simplepie/test/date/SPtests/RFC2822/valid/14.php new file mode 100644 index 0000000000..f45b660aff --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/14.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_14 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 A'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/15.php b/simplepie/test/date/SPtests/RFC2822/valid/15.php new file mode 100644 index 0000000000..ecf32ebc62 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/15.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_15 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 B'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/16.php b/simplepie/test/date/SPtests/RFC2822/valid/16.php new file mode 100644 index 0000000000..1defa0f563 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/16.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_16 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 C'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/17.php b/simplepie/test/date/SPtests/RFC2822/valid/17.php new file mode 100644 index 0000000000..c14bc9e6e4 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/17.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_17 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 D'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/18.php b/simplepie/test/date/SPtests/RFC2822/valid/18.php new file mode 100644 index 0000000000..1ef5016623 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/18.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_18 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 E'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/19.php b/simplepie/test/date/SPtests/RFC2822/valid/19.php new file mode 100644 index 0000000000..4cd0909095 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/19.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_19 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 F'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/2.php b/simplepie/test/date/SPtests/RFC2822/valid/2.php new file mode 100644 index 0000000000..c9f76e202f --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/2.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_2 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '05 Nov 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/20.php b/simplepie/test/date/SPtests/RFC2822/valid/20.php new file mode 100644 index 0000000000..b60f499dc3 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/20.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_20 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 G'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/21.php b/simplepie/test/date/SPtests/RFC2822/valid/21.php new file mode 100644 index 0000000000..c689c547d6 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/21.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_21 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 H'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/22.php b/simplepie/test/date/SPtests/RFC2822/valid/22.php new file mode 100644 index 0000000000..9dfb091b02 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/22.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_22 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 I'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/23.php b/simplepie/test/date/SPtests/RFC2822/valid/23.php new file mode 100644 index 0000000000..7fb0c81c35 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/23.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_23 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 K'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/24.php b/simplepie/test/date/SPtests/RFC2822/valid/24.php new file mode 100644 index 0000000000..a90fe568fc --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/24.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_24 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 L'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/25.php b/simplepie/test/date/SPtests/RFC2822/valid/25.php new file mode 100644 index 0000000000..525440d457 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/25.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_25 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 M'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/26.php b/simplepie/test/date/SPtests/RFC2822/valid/26.php new file mode 100644 index 0000000000..95a6475f81 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/26.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_26 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 N'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/27.php b/simplepie/test/date/SPtests/RFC2822/valid/27.php new file mode 100644 index 0000000000..d13d391640 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/27.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_27 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 O'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/28.php b/simplepie/test/date/SPtests/RFC2822/valid/28.php new file mode 100644 index 0000000000..9ef9d6c92f --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/28.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_28 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 P'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/29.php b/simplepie/test/date/SPtests/RFC2822/valid/29.php new file mode 100644 index 0000000000..8ef58be10f --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/29.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_29 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 Q'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/3.php b/simplepie/test/date/SPtests/RFC2822/valid/3.php new file mode 100644 index 0000000000..fcb29201f4 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/3.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_3 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 5 Nov 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/30.php b/simplepie/test/date/SPtests/RFC2822/valid/30.php new file mode 100644 index 0000000000..d28f23cd0b --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/30.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_30 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 R'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/31.php b/simplepie/test/date/SPtests/RFC2822/valid/31.php new file mode 100644 index 0000000000..af1f5adcc7 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/31.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_31 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 S'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/32.php b/simplepie/test/date/SPtests/RFC2822/valid/32.php new file mode 100644 index 0000000000..da2067903d --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/32.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_32 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 T'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/33.php b/simplepie/test/date/SPtests/RFC2822/valid/33.php new file mode 100644 index 0000000000..1c92362d40 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/33.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_33 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 U'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/34.php b/simplepie/test/date/SPtests/RFC2822/valid/34.php new file mode 100644 index 0000000000..cf3ecb3435 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/34.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_34 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 V'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/35.php b/simplepie/test/date/SPtests/RFC2822/valid/35.php new file mode 100644 index 0000000000..900401323a --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/35.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_35 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 W'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/36.php b/simplepie/test/date/SPtests/RFC2822/valid/36.php new file mode 100644 index 0000000000..2f9c015bc2 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/36.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_36 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 X'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/37.php b/simplepie/test/date/SPtests/RFC2822/valid/37.php new file mode 100644 index 0000000000..a509406827 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/37.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_37 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 Y'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/38.php b/simplepie/test/date/SPtests/RFC2822/valid/38.php new file mode 100644 index 0000000000..fc8a1d80c0 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/38.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_38 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 Z'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/39.php b/simplepie/test/date/SPtests/RFC2822/valid/39.php new file mode 100644 index 0000000000..975a348d88 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/39.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_39 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 +0000'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/4.php b/simplepie/test/date/SPtests/RFC2822/valid/4.php new file mode 100644 index 0000000000..c6767f83cf --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/4.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_4 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15 GMT'; + } + + function expected() + { + $this->expected = 784041300; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/40.php b/simplepie/test/date/SPtests/RFC2822/valid/40.php new file mode 100644 index 0000000000..78e5be9fb1 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/40.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_40 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 -0000'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/41.php b/simplepie/test/date/SPtests/RFC2822/valid/41.php new file mode 100644 index 0000000000..d5bdfe40b5 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/41.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_41 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 14:15:30 +0100'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/42.php b/simplepie/test/date/SPtests/RFC2822/valid/42.php new file mode 100644 index 0000000000..eeae5e18e3 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/42.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_42 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 12:15:30 -0100'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/43.php b/simplepie/test/date/SPtests/RFC2822/valid/43.php new file mode 100644 index 0000000000..f97a2f1025 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/43.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_43 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri(day), 05 Nov(ember) 94 13:15:30 GMT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/44.php b/simplepie/test/date/SPtests/RFC2822/valid/44.php new file mode 100644 index 0000000000..d12b919b0b --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/44.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_44 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri(day), 05 Nov(ember) 94 13:15:30 A'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/5.php b/simplepie/test/date/SPtests/RFC2822/valid/5.php new file mode 100644 index 0000000000..cbb13360cd --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/5.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_5 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 13:15:30 UT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/6.php b/simplepie/test/date/SPtests/RFC2822/valid/6.php new file mode 100644 index 0000000000..d89efb0eb6 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/6.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_6 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 08:15:30 EST'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/7.php b/simplepie/test/date/SPtests/RFC2822/valid/7.php new file mode 100644 index 0000000000..f6574c7c92 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/7.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_7 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 09:15:30 EDT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/8.php b/simplepie/test/date/SPtests/RFC2822/valid/8.php new file mode 100644 index 0000000000..2b6a1afa18 --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/8.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_8 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 07:15:30 CST'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/RFC2822/valid/9.php b/simplepie/test/date/SPtests/RFC2822/valid/9.php new file mode 100644 index 0000000000..bfb5d37c8c --- /dev/null +++ b/simplepie/test/date/SPtests/RFC2822/valid/9.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_RFC2822_9 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'Fri, 05 Nov 94 08:15:30 CDT'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/bugs/157.0.php b/simplepie/test/date/SPtests/bugs/157.0.php new file mode 100644 index 0000000000..e08a62bc3c --- /dev/null +++ b/simplepie/test/date/SPtests/bugs/157.0.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_Bug_157_Test_0 extends SimplePie_Date_Test +{ + function data() + { + $this->data = 'meep'; + } + + function expected() + { + $this->expected = false; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/SPtests/bugs/259.0.php b/simplepie/test/date/SPtests/bugs/259.0.php new file mode 100644 index 0000000000..a50c7f35fc --- /dev/null +++ b/simplepie/test/date/SPtests/bugs/259.0.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_Bug_259_Test_0 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '1994-11-05T08:15:30-0500'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/W3CDTF/1.php b/simplepie/test/date/W3CDTF/1.php new file mode 100644 index 0000000000..d11a59f388 --- /dev/null +++ b/simplepie/test/date/W3CDTF/1.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_W3CDTF_1 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '1994-11-05T08:15:30-05:00'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/W3CDTF/2.php b/simplepie/test/date/W3CDTF/2.php new file mode 100644 index 0000000000..9904e2ba18 --- /dev/null +++ b/simplepie/test/date/W3CDTF/2.php @@ -0,0 +1,16 @@ +<?php + +class SimplePie_Date_Test_W3CDTF_2 extends SimplePie_Date_Test +{ + function data() + { + $this->data = '1994-11-05T13:15:30Z'; + } + + function expected() + { + $this->expected = 784041330; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/date/W3CDTF/README b/simplepie/test/date/W3CDTF/README new file mode 100644 index 0000000000..4ace48d487 --- /dev/null +++ b/simplepie/test/date/W3CDTF/README @@ -0,0 +1 @@ +The tests enclosed within come from the W3C Date and Time Formats note \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.0/subject.php new file mode 100644 index 0000000000..735222265c --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.0/subject.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Atom_03_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:subject>Feed Category</dc:subject> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.1/subject.php new file mode 100644 index 0000000000..81c0fc3d53 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/atom/0.3/dc/1.1/subject.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Atom_03_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:subject>Feed Category</dc:subject> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.0/subject.php new file mode 100644 index 0000000000..ffe2eb68d4 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.0/subject.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Atom_10_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:subject>Feed Category</dc:subject> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.1/subject.php new file mode 100644 index 0000000000..89fd41849b --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/atom/1.0/dc/1.1/subject.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Atom_10_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:subject>Feed Category</dc:subject> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/atom/1.0/label.php new file mode 100644 index 0000000000..eacf3706fa --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/atom/1.0/label.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <category label="Feed Category"/> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/atom/1.0/term.php new file mode 100644 index 0000000000..d387f69d42 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/atom/1.0/term.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <category term="Feed Category"/> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/bugs/21.0.php b/simplepie/test/feed_category_label/SPtests/bugs/21.0.php new file mode 100644 index 0000000000..1091385d4f --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/bugs/21.0.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_Bug_21_Test_0 extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <category term="Example category"/> +</feed>'; + } + + function expected() + { + $this->expected = 'Example category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/label.php new file mode 100644 index 0000000000..2b91b39161 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_090_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category label="Feed Category"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/term.php new file mode 100644 index 0000000000..cc797910cb --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.90/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_090_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category term="Feed Category"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.0/subject.php new file mode 100644 index 0000000000..92b50d29ef --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_090_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.1/subject.php new file mode 100644 index 0000000000..e75f4b8bc7 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.90/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_090_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php new file mode 100644 index 0000000000..0570fa8b77 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Netscape_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category label="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php new file mode 100644 index 0000000000..51ce0f0ddc --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Netscape_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category term="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php new file mode 100644 index 0000000000..dde6bea496 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Netscape_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php new file mode 100644 index 0000000000..6678e1dd6d --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Netscape_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php new file mode 100644 index 0000000000..e144ba9527 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Userland_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category label="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php new file mode 100644 index 0000000000..034502990e --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Userland_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category term="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php new file mode 100644 index 0000000000..30be08cb1c --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Userland_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php new file mode 100644 index 0000000000..2f3e7b9ced --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_091_Userland_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/label.php new file mode 100644 index 0000000000..38af20b99f --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_092_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category label="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/term.php new file mode 100644 index 0000000000..2539a6d7b4 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.92/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_092_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category term="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.0/subject.php new file mode 100644 index 0000000000..0decfee444 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_092_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.1/subject.php new file mode 100644 index 0000000000..1108b4fa8d --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/0.92/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_092_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/label.php new file mode 100644 index 0000000000..6c171bd038 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_10_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category label="Feed Category"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/term.php new file mode 100644 index 0000000000..78923a5e68 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/1.0/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_10_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category term="Feed Category"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.0/subject.php new file mode 100644 index 0000000000..169e56027d --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_10_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.1/subject.php new file mode 100644 index 0000000000..845b8d6c93 --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/1.0/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_10_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/label.php b/simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/label.php new file mode 100644 index 0000000000..24b8d6555d --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_20_Atom_10_Category_Label extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category label="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/term.php b/simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/term.php new file mode 100644 index 0000000000..99e166c73b --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/2.0/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_20_Atom_10_Category_Term extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:category term="Feed Category"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/2.0/category.php b/simplepie/test/feed_category_label/SPtests/rss/2.0/category.php new file mode 100644 index 0000000000..5bd28af3ab --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/2.0/category.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_20_Category extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <category>Feed Category</category> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.0/subject.php b/simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.0/subject.php new file mode 100644 index 0000000000..b13e9f5cba --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_20_DC_10_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.1/subject.php b/simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.1/subject.php new file mode 100644 index 0000000000..edaee1a07d --- /dev/null +++ b/simplepie/test/feed_category_label/SPtests/rss/2.0/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Category_Label_Test_RSS_20_DC_11_Subject extends SimplePie_Feed_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:subject>Feed Category</dc:subject> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.0/rights.php new file mode 100644 index 0000000000..fc3058b0d9 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.0/rights.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Copyright_Test_Atom_03_DC_10 extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:rights>Example Copyright Information</dc:rights> +</feed>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.1/rights.php new file mode 100644 index 0000000000..65a26725c3 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/atom/0.3/dc/1.1/rights.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Copyright_Test_Atom_03_DC_11 extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:rights>Example Copyright Information</dc:rights> +</feed>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.0/rights.php new file mode 100644 index 0000000000..6b1cd5dd17 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.0/rights.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Copyright_Test_Atom_10_DC_10 extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:rights>Example Copyright Information</dc:rights> +</feed>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.1/rights.php new file mode 100644 index 0000000000..98bcde9481 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/atom/1.0/dc/1.1/rights.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Copyright_Test_Atom_10_DC_11 extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:rights>Example Copyright Information</dc:rights> +</feed>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/atom/1.0/rights.php new file mode 100644 index 0000000000..3e0b7f6f04 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/atom/1.0/rights.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Copyright_Test_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <rights>Example Copyright Information</rights> +</feed>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.90/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.90/atom/1.0/rights.php new file mode 100644 index 0000000000..c45fb268ce --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.90/atom/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_090_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:rights>Example Copyright Information</a:rights> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.0/rights.php new file mode 100644 index 0000000000..b5b5df1a3e --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_090_DC_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.1/rights.php new file mode 100644 index 0000000000..528d5b56d0 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.90/dc/1.1/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_090_DC_11_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/atom/1.0/rights.php new file mode 100644 index 0000000000..718aa88624 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/atom/1.0/rights.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Netscape_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:rights>Example Copyright Information</a:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/copyright.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/copyright.php new file mode 100644 index 0000000000..cceec1f2d8 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/copyright.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Netscape_Copyright extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <copyright>Example Copyright Information</copyright> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.0/rights.php new file mode 100644 index 0000000000..7422cde33e --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.0/rights.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Netscape_DC_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.1/rights.php new file mode 100644 index 0000000000..5506ee84f6 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-netscape/dc/1.1/rights.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Netscape_DC_11_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/atom/1.0/rights.php new file mode 100644 index 0000000000..32a1efa807 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/atom/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Userland_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:rights>Example Copyright Information</a:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/copyright.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/copyright.php new file mode 100644 index 0000000000..2da3ceb0b2 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/copyright.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Userland_Copyright extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <copyright>Example Copyright Information</copyright> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.0/rights.php new file mode 100644 index 0000000000..44daa979ee --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Userland_DC_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.1/rights.php new file mode 100644 index 0000000000..aaa13264b5 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.91-userland/dc/1.1/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_091_Userland_DC_11_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.92/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.92/atom/1.0/rights.php new file mode 100644 index 0000000000..8b70888ea0 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.92/atom/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_092_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:rights>Example Copyright Information</a:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.92/copyright.php b/simplepie/test/feed_copyright/SPtests/rss/0.92/copyright.php new file mode 100644 index 0000000000..f364e7b3cc --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.92/copyright.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_092_Copyright extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <copyright>Example Copyright Information</copyright> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.0/rights.php new file mode 100644 index 0000000000..68a8a5c9a0 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_092_DC_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.1/rights.php new file mode 100644 index 0000000000..6607d1674f --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/0.92/dc/1.1/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_092_DC_11_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/1.0/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/1.0/atom/1.0/rights.php new file mode 100644 index 0000000000..4f8a2f343d --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/1.0/atom/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_10_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:rights>Example Copyright Information</a:rights> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.0/rights.php new file mode 100644 index 0000000000..efa34b39b4 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_10_DC_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.1/rights.php new file mode 100644 index 0000000000..803f5e0240 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/1.0/dc/1.1/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_10_DC_11_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/2.0/atom/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/2.0/atom/1.0/rights.php new file mode 100644 index 0000000000..cd2e63764d --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/2.0/atom/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_20_Atom_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:rights>Example Copyright Information</a:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/2.0/copyright.php b/simplepie/test/feed_copyright/SPtests/rss/2.0/copyright.php new file mode 100644 index 0000000000..273424bf45 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/2.0/copyright.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_20_Copyright extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <copyright>Example Copyright Information</copyright> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.0/rights.php b/simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.0/rights.php new file mode 100644 index 0000000000..e866e6708a --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.0/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_20_DC_10_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.1/rights.php b/simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.1/rights.php new file mode 100644 index 0000000000..9c251592c2 --- /dev/null +++ b/simplepie/test/feed_copyright/SPtests/rss/2.0/dc/1.1/rights.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Copyright_Test_RSS_20_DC_11_Rights extends SimplePie_Feed_Copyright_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:rights>Example Copyright Information</dc:rights> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Example Copyright Information'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/atom/0.3/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/atom/0.3/dc/1.0/description.php new file mode 100644 index 0000000000..c6fc4cd31c --- /dev/null +++ b/simplepie/test/feed_description/SPtests/atom/0.3/dc/1.0/description.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Description_Test_Atom_03_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:description>Feed Description</dc:description> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/atom/0.3/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/atom/0.3/dc/1.1/description.php new file mode 100644 index 0000000000..3b466a4fff --- /dev/null +++ b/simplepie/test/feed_description/SPtests/atom/0.3/dc/1.1/description.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Description_Test_Atom_03_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:description>Feed Description</dc:description> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/atom/0.3/tagline.php new file mode 100644 index 0000000000..41ddd356bc --- /dev/null +++ b/simplepie/test/feed_description/SPtests/atom/0.3/tagline.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Description_Test_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <tagline>Feed Description</tagline> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/atom/1.0/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/atom/1.0/dc/1.0/description.php new file mode 100644 index 0000000000..ebd9f0e42c --- /dev/null +++ b/simplepie/test/feed_description/SPtests/atom/1.0/dc/1.0/description.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Description_Test_Atom_10_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:description>Feed Description</dc:description> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/atom/1.0/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/atom/1.0/dc/1.1/description.php new file mode 100644 index 0000000000..31e4d277b0 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/atom/1.0/dc/1.1/description.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Description_Test_Atom_10_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:description>Feed Description</dc:description> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/atom/1.0/subtitle.php new file mode 100644 index 0000000000..da830bf804 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/atom/1.0/subtitle.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Description_Test_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <subtitle>Feed Description</subtitle> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.90/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/rss/0.90/atom/0.3/tagline.php new file mode 100644 index 0000000000..e6cb8aba38 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.90/atom/0.3/tagline.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_090_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:tagline>Feed Description</a:tagline> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.90/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/rss/0.90/atom/1.0/subtitle.php new file mode 100644 index 0000000000..3824094e53 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.90/atom/1.0/subtitle.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_090_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:subtitle>Feed Description</a:subtitle> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.90/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/0.90/dc/1.0/description.php new file mode 100644 index 0000000000..12170525cd --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.90/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_090_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.90/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/rss/0.90/dc/1.1/description.php new file mode 100644 index 0000000000..3db65728c3 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.90/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_090_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.90/description.php b/simplepie/test/feed_description/SPtests/rss/0.90/description.php new file mode 100644 index 0000000000..52d7cf0c35 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.90/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_090_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <channel> + <description>Feed Description</description> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/0.3/tagline.php new file mode 100644 index 0000000000..d8eedbc3d4 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/0.3/tagline.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Netscape_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:tagline>Feed Description</a:tagline> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/1.0/subtitle.php new file mode 100644 index 0000000000..9339d490e5 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/atom/1.0/subtitle.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Netscape_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:subtitle>Feed Description</a:subtitle> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.0/description.php new file mode 100644 index 0000000000..ba0cca2514 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.0/description.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Netscape_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.1/description.php new file mode 100644 index 0000000000..10592c12f9 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/dc/1.1/description.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Netscape_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-netscape/description.php b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/description.php new file mode 100644 index 0000000000..291854d278 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-netscape/description.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Netscape_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <description>Feed Description</description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/0.3/tagline.php new file mode 100644 index 0000000000..2a44a8eb3b --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/0.3/tagline.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Userland_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:tagline>Feed Description</a:tagline> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/1.0/subtitle.php new file mode 100644 index 0000000000..dab053e14e --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-userland/atom/1.0/subtitle.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Userland_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:subtitle>Feed Description</a:subtitle> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.0/description.php new file mode 100644 index 0000000000..652b7a6427 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Userland_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.1/description.php new file mode 100644 index 0000000000..653a6cfe4f --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-userland/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Userland_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.91-userland/description.php b/simplepie/test/feed_description/SPtests/rss/0.91-userland/description.php new file mode 100644 index 0000000000..afc408b57c --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.91-userland/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_091_Userland_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <description>Feed Description</description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.92/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/rss/0.92/atom/0.3/tagline.php new file mode 100644 index 0000000000..6573f30da7 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.92/atom/0.3/tagline.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_092_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:tagline>Feed Description</a:tagline> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.92/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/rss/0.92/atom/1.0/subtitle.php new file mode 100644 index 0000000000..168185e2e8 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.92/atom/1.0/subtitle.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_092_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:subtitle>Feed Description</a:subtitle> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.92/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/0.92/dc/1.0/description.php new file mode 100644 index 0000000000..690a52c549 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.92/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_092_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.92/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/rss/0.92/dc/1.1/description.php new file mode 100644 index 0000000000..27e3e6bc38 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.92/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_092_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/0.92/description.php b/simplepie/test/feed_description/SPtests/rss/0.92/description.php new file mode 100644 index 0000000000..ac17b67ce1 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/0.92/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_092_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <description>Feed Description</description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/1.0/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/rss/1.0/atom/0.3/tagline.php new file mode 100644 index 0000000000..4a86e3baeb --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/1.0/atom/0.3/tagline.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_10_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:tagline>Feed Description</a:tagline> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/1.0/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/rss/1.0/atom/1.0/subtitle.php new file mode 100644 index 0000000000..c193059de4 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/1.0/atom/1.0/subtitle.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_10_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:subtitle>Feed Description</a:subtitle> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/1.0/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/1.0/dc/1.0/description.php new file mode 100644 index 0000000000..79135f67ac --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/1.0/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_10_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/1.0/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/rss/1.0/dc/1.1/description.php new file mode 100644 index 0000000000..dd4e64dd74 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/1.0/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_10_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/1.0/description.php new file mode 100644 index 0000000000..82a2479a30 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <channel> + <description>Feed Description</description> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/2.0/atom/0.3/tagline.php b/simplepie/test/feed_description/SPtests/rss/2.0/atom/0.3/tagline.php new file mode 100644 index 0000000000..7e13698d59 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/2.0/atom/0.3/tagline.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_20_Atom_03_Tagline extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:tagline>Feed Description</a:tagline> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/2.0/atom/1.0/subtitle.php b/simplepie/test/feed_description/SPtests/rss/2.0/atom/1.0/subtitle.php new file mode 100644 index 0000000000..91807079b8 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/2.0/atom/1.0/subtitle.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_20_Atom_10_Subtitle extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:subtitle>Feed Description</a:subtitle> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/2.0/dc/1.0/description.php b/simplepie/test/feed_description/SPtests/rss/2.0/dc/1.0/description.php new file mode 100644 index 0000000000..4b094096e2 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/2.0/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_20_DC_10_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/2.0/dc/1.1/description.php b/simplepie/test/feed_description/SPtests/rss/2.0/dc/1.1/description.php new file mode 100644 index 0000000000..00088e8e22 --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/2.0/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_20_DC_11_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:description>Feed Description</dc:description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_description/SPtests/rss/2.0/description.php b/simplepie/test/feed_description/SPtests/rss/2.0/description.php new file mode 100644 index 0000000000..1364082f8c --- /dev/null +++ b/simplepie/test/feed_description/SPtests/rss/2.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Description_Test_RSS_20_Description extends SimplePie_Feed_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <description>Feed Description</description> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/atom/1.0/icon-default.php new file mode 100644 index 0000000000..32e821fb48 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/atom/1.0/icon-default.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <icon>http://example.com/</icon> +</feed>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_height/SPtests/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/atom/1.0/logo-default.php new file mode 100644 index 0000000000..d3d31c3b4a --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/atom/1.0/logo-default.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <logo>http://example.com/</logo> +</feed>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/icon-default.php new file mode 100644 index 0000000000..c8251bebf9 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_090_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/logo-default.php new file mode 100644 index 0000000000..207f9d9f29 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.90/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_090_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.90/url-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.90/url-default.php new file mode 100644 index 0000000000..f267b84303 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.90/url-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_090_URL_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <image> + <url>http://example.com/</url> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php new file mode 100644 index 0000000000..842b9fd54c --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Netscape_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php new file mode 100644 index 0000000000..73a878c9a5 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Netscape_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/height.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/height.php new file mode 100644 index 0000000000..7e3cbe8a14 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/height.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Netscape_Height extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <height>100</height> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/url-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/url-default.php new file mode 100644 index 0000000000..43fea9a40b --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-netscape/url-default.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Netscape_URL_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 31.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/icon-default.php new file mode 100644 index 0000000000..7e0222c096 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Userland_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/logo-default.php new file mode 100644 index 0000000000..8e3f16024a --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Userland_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/height.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/height.php new file mode 100644 index 0000000000..5b7ba7311d --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/height.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Userland_Height extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <height>100</height> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/url-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/url-default.php new file mode 100644 index 0000000000..4eafec9d48 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.91-userland/url-default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_091_Userland_URL_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 31.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/icon-default.php new file mode 100644 index 0000000000..f1a4d70b43 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_092_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/logo-default.php new file mode 100644 index 0000000000..c4e27f3daa --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.92/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_092_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.92/height.php b/simplepie/test/feed_image_height/SPtests/rss/0.92/height.php new file mode 100644 index 0000000000..fc284167ca --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.92/height.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_092_Height extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <height>100</height> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/0.92/url-default.php b/simplepie/test/feed_image_height/SPtests/rss/0.92/url-default.php new file mode 100644 index 0000000000..97dbd11699 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/0.92/url-default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_092_URL_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 31.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/icon-default.php new file mode 100644 index 0000000000..0db5227029 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_10_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/logo-default.php new file mode 100644 index 0000000000..41f76403c1 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/1.0/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_10_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/1.0/url-default.php b/simplepie/test/feed_image_height/SPtests/rss/1.0/url-default.php new file mode 100644 index 0000000000..f96878c68a --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/1.0/url-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_10_URL_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <image> + <url>http://example.com/</url> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/icon-default.php b/simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/icon-default.php new file mode 100644 index 0000000000..71cd42c237 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_20_Atom_10_Icon_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/logo-default.php b/simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/logo-default.php new file mode 100644 index 0000000000..77a9514ded --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/2.0/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_20_Atom_10_Logo_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/2.0/height.php b/simplepie/test/feed_image_height/SPtests/rss/2.0/height.php new file mode 100644 index 0000000000..02d80e8714 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/2.0/height.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_20_Height extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <height>100</height> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_height/SPtests/rss/2.0/url-default.php b/simplepie/test/feed_image_height/SPtests/rss/2.0/url-default.php new file mode 100644 index 0000000000..e603375cc3 --- /dev/null +++ b/simplepie/test/feed_image_height/SPtests/rss/2.0/url-default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Height_Test_RSS_20_URL_Default extends SimplePie_Feed_Image_Height_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 31.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_link/SPtests/rss/0.90/link.php b/simplepie/test/feed_image_link/SPtests/rss/0.90/link.php new file mode 100644 index 0000000000..ddcc914089 --- /dev/null +++ b/simplepie/test/feed_image_link/SPtests/rss/0.90/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Link_Test_RSS_090_Link extends SimplePie_Feed_Image_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <image> + <link>http://example.com/</link> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_link/SPtests/rss/0.91-netscape/link.php b/simplepie/test/feed_image_link/SPtests/rss/0.91-netscape/link.php new file mode 100644 index 0000000000..0b7515ef44 --- /dev/null +++ b/simplepie/test/feed_image_link/SPtests/rss/0.91-netscape/link.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Link_Test_RSS_091_Netscape_Link extends SimplePie_Feed_Image_Link_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <link>http://example.com/</link> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_link/SPtests/rss/0.91-userland/link.php b/simplepie/test/feed_image_link/SPtests/rss/0.91-userland/link.php new file mode 100644 index 0000000000..14827b59b7 --- /dev/null +++ b/simplepie/test/feed_image_link/SPtests/rss/0.91-userland/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Link_Test_RSS_091_Userland_Link extends SimplePie_Feed_Image_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <link>http://example.com/</link> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_link/SPtests/rss/0.92/link.php b/simplepie/test/feed_image_link/SPtests/rss/0.92/link.php new file mode 100644 index 0000000000..3a59984a74 --- /dev/null +++ b/simplepie/test/feed_image_link/SPtests/rss/0.92/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Link_Test_RSS_092_Link extends SimplePie_Feed_Image_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <link>http://example.com/</link> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_link/SPtests/rss/1.0/link.php b/simplepie/test/feed_image_link/SPtests/rss/1.0/link.php new file mode 100644 index 0000000000..a30f6bc8e6 --- /dev/null +++ b/simplepie/test/feed_image_link/SPtests/rss/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Link_Test_RSS_10_Link extends SimplePie_Feed_Image_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <image> + <link>http://example.com/</link> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_link/SPtests/rss/2.0/link.php b/simplepie/test/feed_image_link/SPtests/rss/2.0/link.php new file mode 100644 index 0000000000..75c8deb33d --- /dev/null +++ b/simplepie/test/feed_image_link/SPtests/rss/2.0/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Link_Test_RSS_20_Link extends SimplePie_Feed_Image_Link_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <link>http://example.com/</link> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.0/title.php new file mode 100644 index 0000000000..cbcde3e400 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_090_DC_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <image> + <dc:title>Image Title</dc:title> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.1/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.1/title.php new file mode 100644 index 0000000000..314a3e9bb9 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.90/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_090_DC_11_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <image> + <dc:title>Image Title</dc:title> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.90/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.90/title.php new file mode 100644 index 0000000000..c7c54124ef --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.90/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_090_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <image> + <title>Image Title</title> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.0/title.php new file mode 100644 index 0000000000..d355feb01d --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.0/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_091_Netscape_DC_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.1/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.1/title.php new file mode 100644 index 0000000000..d79d83653e --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/dc/1.1/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_091_Netscape_DC_11_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/title.php new file mode 100644 index 0000000000..6a380a9b0e --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.91-netscape/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_091_Netscape_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <title>Image Title</title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.0/title.php new file mode 100644 index 0000000000..243b7436a4 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_091_Userland_DC_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.1/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.1/title.php new file mode 100644 index 0000000000..356cba89ef --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/dc/1.1/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_091_Userland_DC_11_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/title.php new file mode 100644 index 0000000000..4e989d0855 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.91-userland/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_091_Userland_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <title>Image Title</title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.0/title.php new file mode 100644 index 0000000000..4f57e51674 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_092_DC_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.1/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.1/title.php new file mode 100644 index 0000000000..61c2e5c054 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.92/dc/1.1/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_092_DC_11_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/0.92/title.php b/simplepie/test/feed_image_title/SPtests/rss/0.92/title.php new file mode 100644 index 0000000000..5051689847 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/0.92/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_092_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <title>Image Title</title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.0/title.php new file mode 100644 index 0000000000..bdebd712ee --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_10_DC_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <image> + <dc:title>Image Title</dc:title> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.1/title.php b/simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.1/title.php new file mode 100644 index 0000000000..1333d49616 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/1.0/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_10_DC_11_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <image> + <dc:title>Image Title</dc:title> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/1.0/title.php new file mode 100644 index 0000000000..a0f167e763 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <image> + <title>Image Title</title> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.0/title.php new file mode 100644 index 0000000000..23d39e6527 --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_20_DC_10_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.1/title.php b/simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.1/title.php new file mode 100644 index 0000000000..0f34fbcbac --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/2.0/dc/1.1/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_20_DC_11_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <image> + <dc:title>Image Title</dc:title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_title/SPtests/rss/2.0/title.php b/simplepie/test/feed_image_title/SPtests/rss/2.0/title.php new file mode 100644 index 0000000000..1eef83666d --- /dev/null +++ b/simplepie/test/feed_image_title/SPtests/rss/2.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Title_Test_RSS_20_Title extends SimplePie_Feed_Image_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <title>Image Title</title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Image Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/atom/1.0/icon.php new file mode 100644 index 0000000000..c532ea0723 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/atom/1.0/icon.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <icon>http://example.com/</icon> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/atom/1.0/logo.php new file mode 100644 index 0000000000..bd557474f7 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/atom/1.0/logo.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <logo>http://example.com/</logo> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/icon.php new file mode 100644 index 0000000000..4dc802b954 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/icon.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_090_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/logo.php new file mode 100644 index 0000000000..d3a390c8a0 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.90/atom/1.0/logo.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_090_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.90/url.php b/simplepie/test/feed_image_url/SPtests/rss/0.90/url.php new file mode 100644 index 0000000000..16c0615ae6 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.90/url.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_090_URL extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <image> + <url>http://example.com/</url> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/icon.php new file mode 100644 index 0000000000..ded856a722 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/icon.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_091_Netscape_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/logo.php new file mode 100644 index 0000000000..1e4bdabb82 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/atom/1.0/logo.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_091_Netscape_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/url.php b/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/url.php new file mode 100644 index 0000000000..2db6903e37 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.91-netscape/url.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_091_Netscape_URL extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/icon.php new file mode 100644 index 0000000000..fc898fefec --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/icon.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_091_Userland_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/logo.php new file mode 100644 index 0000000000..c9134c60aa --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/atom/1.0/logo.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_091_Userland_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/url.php b/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/url.php new file mode 100644 index 0000000000..e6e19fc5a0 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.91-userland/url.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_091_Userland_URL extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/icon.php new file mode 100644 index 0000000000..61e0a2fd5a --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/icon.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_092_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/logo.php new file mode 100644 index 0000000000..82cc9bc7a9 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.92/atom/1.0/logo.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_092_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/0.92/url.php b/simplepie/test/feed_image_url/SPtests/rss/0.92/url.php new file mode 100644 index 0000000000..a8aa09f795 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/0.92/url.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_092_URL extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/icon.php new file mode 100644 index 0000000000..18018b0941 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/icon.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_10_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/logo.php new file mode 100644 index 0000000000..a66cbd8eb1 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/1.0/atom/1.0/logo.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_10_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/1.0/url.php b/simplepie/test/feed_image_url/SPtests/rss/1.0/url.php new file mode 100644 index 0000000000..58ce1fdeb1 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/1.0/url.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_10_URL extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <image> + <url>http://example.com/</url> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/icon.php b/simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/icon.php new file mode 100644 index 0000000000..7393af860d --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/icon.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_20_Atom_10_Icon extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/logo.php b/simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/logo.php new file mode 100644 index 0000000000..775db35163 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/2.0/atom/1.0/logo.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_20_Atom_10_Logo extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_url/SPtests/rss/2.0/url.php b/simplepie/test/feed_image_url/SPtests/rss/2.0/url.php new file mode 100644 index 0000000000..b8301ef712 --- /dev/null +++ b/simplepie/test/feed_image_url/SPtests/rss/2.0/url.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_URL_Test_RSS_20_URL extends SimplePie_Feed_Image_URL_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/atom/1.0/icon-default.php new file mode 100644 index 0000000000..e409a08f3e --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/atom/1.0/icon-default.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_Atom_10_Icon_Default extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <icon>http://example.com/</icon> +</feed>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_width/SPtests/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/atom/1.0/logo-default.php new file mode 100644 index 0000000000..36a63866fc --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/atom/1.0/logo-default.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_Atom_10_Logo_Default extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <logo>http://example.com/</logo> +</feed>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/icon-default.php new file mode 100644 index 0000000000..efa0f5ae17 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_090_Atom_10_Icon extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/logo-default.php new file mode 100644 index 0000000000..c9e93afcb7 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.90/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_090_Atom_10_Logo extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.90/url-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.90/url-default.php new file mode 100644 index 0000000000..075fa6d6ec --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.90/url-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_090 extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <image> + <url>http://example.com/</url> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php new file mode 100644 index 0000000000..e60f592651 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/icon-default.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Netscape_Atom_10_Icon extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php new file mode 100644 index 0000000000..7abbe210eb --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/atom/1.0/logo-default.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Netscape_Atom_10_Logo extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/url-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/url-default.php new file mode 100644 index 0000000000..4849fcdfc8 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/url-default.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Netscape extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 88.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/width.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/width.php new file mode 100644 index 0000000000..608147fda0 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-netscape/width.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Netscape_Width extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <image> + <width>100</width> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/icon-default.php new file mode 100644 index 0000000000..351b8d8311 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Userland_Atom_10_Icon extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/logo-default.php new file mode 100644 index 0000000000..7b35b750a8 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Userland_Atom_10_Logo extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/url-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/url-default.php new file mode 100644 index 0000000000..49010e0744 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/url-default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Userland extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 88.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/width.php b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/width.php new file mode 100644 index 0000000000..84749ffd75 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.91-userland/width.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_091_Userland_Width extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <image> + <width>100</width> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/icon-default.php new file mode 100644 index 0000000000..ddbbb4e94a --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_092_Atom_10_Icon extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/logo-default.php new file mode 100644 index 0000000000..b30d364f3d --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.92/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_092_Atom_10_Logo extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.92/url-default.php b/simplepie/test/feed_image_width/SPtests/rss/0.92/url-default.php new file mode 100644 index 0000000000..c0b17b5627 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.92/url-default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_092 extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 88.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/0.92/width.php b/simplepie/test/feed_image_width/SPtests/rss/0.92/width.php new file mode 100644 index 0000000000..6bf6f45d5f --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/0.92/width.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_092_Width extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <image> + <width>100</width> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/icon-default.php new file mode 100644 index 0000000000..39571a4760 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_10_Atom_10_Icon extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/logo-default.php new file mode 100644 index 0000000000..cdb34bd222 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/1.0/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_10_Atom_10_Logo extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/1.0/url-default.php b/simplepie/test/feed_image_width/SPtests/rss/1.0/url-default.php new file mode 100644 index 0000000000..4ad0bf41e2 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/1.0/url-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_10 extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <image> + <url>http://example.com/</url> + </image> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/icon-default.php b/simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/icon-default.php new file mode 100644 index 0000000000..152c324181 --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/icon-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_20_Atom_10_Icon extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:icon>http://example.com/</a:icon> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/logo-default.php b/simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/logo-default.php new file mode 100644 index 0000000000..112985a68d --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/2.0/atom/1.0/logo-default.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_20_Atom_10_Logo extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:logo>http://example.com/</a:logo> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/2.0/url-default.php b/simplepie/test/feed_image_width/SPtests/rss/2.0/url-default.php new file mode 100644 index 0000000000..bc9bf7da9c --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/2.0/url-default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_20 extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <url>http://example.com/</url> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 88.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_image_width/SPtests/rss/2.0/width.php b/simplepie/test/feed_image_width/SPtests/rss/2.0/width.php new file mode 100644 index 0000000000..3572f9a8bd --- /dev/null +++ b/simplepie/test/feed_image_width/SPtests/rss/2.0/width.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Image_Width_Test_RSS_20_Width extends SimplePie_Feed_Image_Width_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <width>100</width> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 100.0; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/atom/0.3/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/atom/0.3/dc/1.0/language.php new file mode 100644 index 0000000000..a338cd68aa --- /dev/null +++ b/simplepie/test/feed_language/SPtests/atom/0.3/dc/1.0/language.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Language_Test_Atom_03_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:language>en-GB</dc:language> +</feed>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/atom/0.3/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/atom/0.3/dc/1.1/language.php new file mode 100644 index 0000000000..3e9b8f28ba --- /dev/null +++ b/simplepie/test/feed_language/SPtests/atom/0.3/dc/1.1/language.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Language_Test_Atom_03_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:language>en-GB</dc:language> +</feed>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/atom/0.3/xml_lang.php b/simplepie/test/feed_language/SPtests/atom/0.3/xml_lang.php new file mode 100644 index 0000000000..c8f16e5863 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/atom/0.3/xml_lang.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Language_Test_Atom_03_xmllang extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xml:lang="en-GB"> + <title>Feed Title</title> +</feed>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/atom/1.0/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/atom/1.0/dc/1.0/language.php new file mode 100644 index 0000000000..4088618774 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/atom/1.0/dc/1.0/language.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Language_Test_Atom_10_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:language>en-GB</dc:language> +</feed>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/atom/1.0/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/atom/1.0/dc/1.1/language.php new file mode 100644 index 0000000000..0fd63dbfa9 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/atom/1.0/dc/1.1/language.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Language_Test_Atom_10_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:language>en-GB</dc:language> +</feed>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/atom/1.0/xml_lang.php b/simplepie/test/feed_language/SPtests/atom/1.0/xml_lang.php new file mode 100644 index 0000000000..b8dd959a1e --- /dev/null +++ b/simplepie/test/feed_language/SPtests/atom/1.0/xml_lang.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Language_Test_Atom_10_xmllang extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB"> + <title>Feed Title</title> +</feed>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.90/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/rss/0.90/dc/1.0/language.php new file mode 100644 index 0000000000..1fb9378f05 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.90/dc/1.0/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_090_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.90/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/rss/0.90/dc/1.1/language.php new file mode 100644 index 0000000000..7bd5409add --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.90/dc/1.1/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_090_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.0/language.php new file mode 100644 index 0000000000..852c3b344d --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.0/language.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_091_Netscape_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.1/language.php new file mode 100644 index 0000000000..dfccbad995 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.91-netscape/dc/1.1/language.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_091_Netscape_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.91-netscape/language.php b/simplepie/test/feed_language/SPtests/rss/0.91-netscape/language.php new file mode 100644 index 0000000000..2da182f566 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.91-netscape/language.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_091_Netscape_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <language>en-GB</language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.0/language.php new file mode 100644 index 0000000000..b0db9c0b2e --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.0/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_091_Userland_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.1/language.php new file mode 100644 index 0000000000..3de203ba42 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.91-userland/dc/1.1/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_091_Userland_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.91-userland/language.php b/simplepie/test/feed_language/SPtests/rss/0.91-userland/language.php new file mode 100644 index 0000000000..d3b5cb5e14 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.91-userland/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_091_Userland_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <language>en-GB</language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.92/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/rss/0.92/dc/1.0/language.php new file mode 100644 index 0000000000..f2fa9cb1b0 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.92/dc/1.0/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_092_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.92/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/rss/0.92/dc/1.1/language.php new file mode 100644 index 0000000000..3aaa4bd6c8 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.92/dc/1.1/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_092_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/0.92/language.php b/simplepie/test/feed_language/SPtests/rss/0.92/language.php new file mode 100644 index 0000000000..6292787f97 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/0.92/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_092_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <language>en-GB</language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/1.0/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/rss/1.0/dc/1.0/language.php new file mode 100644 index 0000000000..c038f0b368 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/1.0/dc/1.0/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_10_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/1.0/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/rss/1.0/dc/1.1/language.php new file mode 100644 index 0000000000..2e5163ea11 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/1.0/dc/1.1/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_10_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/2.0/dc/1.0/language.php b/simplepie/test/feed_language/SPtests/rss/2.0/dc/1.0/language.php new file mode 100644 index 0000000000..2afed9d88a --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/2.0/dc/1.0/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_20_DC_10_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/2.0/dc/1.1/language.php b/simplepie/test/feed_language/SPtests/rss/2.0/dc/1.1/language.php new file mode 100644 index 0000000000..1dec610057 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/2.0/dc/1.1/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_20_DC_11_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:language>en-GB</dc:language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_language/SPtests/rss/2.0/language.php b/simplepie/test/feed_language/SPtests/rss/2.0/language.php new file mode 100644 index 0000000000..99cd84fc27 --- /dev/null +++ b/simplepie/test/feed_language/SPtests/rss/2.0/language.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Language_Test_RSS_20_Language extends SimplePie_Feed_Language_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <language>en-GB</language> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'en-GB'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/atom/0.3/link.php new file mode 100644 index 0000000000..9f69b5a438 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/atom/0.3/link.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Link_Test_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <link href="http://example.com/"/> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/atom/0.3/link_@rel_alternate.php b/simplepie/test/feed_link/SPtests/atom/0.3/link_@rel_alternate.php new file mode 100644 index 0000000000..f4b5736e6c --- /dev/null +++ b/simplepie/test/feed_link/SPtests/atom/0.3/link_@rel_alternate.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Link_Test_Atom_03_Link_Alternate extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <link href="http://example.com/" rel="alternate"/> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/atom/1.0/link.php new file mode 100644 index 0000000000..7c528c9b55 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/atom/1.0/link.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Link_Test_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <link href="http://example.com/"/> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_absolute_iri.php b/simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_absolute_iri.php new file mode 100644 index 0000000000..c91cc0e164 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_absolute_iri.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Link_Test_Atom_10_Link_Absolute_IRI extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <link href="http://example.com/" rel="http://www.iana.org/assignments/relation/alternate"/> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_alternate.php b/simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_alternate.php new file mode 100644 index 0000000000..8e1ede1003 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/atom/1.0/link_@rel_alternate.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Link_Test_Atom_10_Link_Relative_IRI extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <link href="http://example.com/" rel="alternate"/> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.90/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/rss/0.90/atom/0.3/link.php new file mode 100644 index 0000000000..2f048b9f9e --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.90/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_090_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.90/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/0.90/atom/1.0/link.php new file mode 100644 index 0000000000..47ed9d8525 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.90/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_090_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.90/link.php b/simplepie/test/feed_link/SPtests/rss/0.90/link.php new file mode 100644 index 0000000000..35088b5170 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.90/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_090_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <channel> + <link>http://example.com/</link> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/0.3/link.php new file mode 100644 index 0000000000..c50a8ed790 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/0.3/link.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_091_Netscape_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/1.0/link.php new file mode 100644 index 0000000000..58ac9f4864 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.91-netscape/atom/1.0/link.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_091_Netscape_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.91-netscape/link.php b/simplepie/test/feed_link/SPtests/rss/0.91-netscape/link.php new file mode 100644 index 0000000000..bebc3b2c16 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.91-netscape/link.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_091_Netscape_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <link>http://example.com/</link> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/0.3/link.php new file mode 100644 index 0000000000..737a1fb382 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_091_Userland_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/1.0/link.php new file mode 100644 index 0000000000..b168918b08 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.91-userland/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_091_Userland_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.91-userland/link.php b/simplepie/test/feed_link/SPtests/rss/0.91-userland/link.php new file mode 100644 index 0000000000..ce1709cbdf --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.91-userland/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_091_Userland_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <link>http://example.com/</link> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.92/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/rss/0.92/atom/0.3/link.php new file mode 100644 index 0000000000..94bcd514f4 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.92/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_092_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.92/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/0.92/atom/1.0/link.php new file mode 100644 index 0000000000..ecfd94feb6 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.92/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_092_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/0.92/link.php b/simplepie/test/feed_link/SPtests/rss/0.92/link.php new file mode 100644 index 0000000000..10d3a675a8 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/0.92/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_092_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <link>http://example.com/</link> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/1.0/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/rss/1.0/atom/0.3/link.php new file mode 100644 index 0000000000..f64c9f5306 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/1.0/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_10_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/1.0/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/1.0/atom/1.0/link.php new file mode 100644 index 0000000000..9317d00371 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/1.0/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_10_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/1.0/link.php new file mode 100644 index 0000000000..fefa7a9474 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <channel> + <link>http://example.com/</link> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/2.0/atom/0.3/link.php b/simplepie/test/feed_link/SPtests/rss/2.0/atom/0.3/link.php new file mode 100644 index 0000000000..5f9e76189b --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/2.0/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_20_Atom_03_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/2.0/atom/1.0/link.php b/simplepie/test/feed_link/SPtests/rss/2.0/atom/1.0/link.php new file mode 100644 index 0000000000..cb7aeccdd7 --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/2.0/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_20_Atom_10_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:link href="http://example.com/"/> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_link/SPtests/rss/2.0/link.php b/simplepie/test/feed_link/SPtests/rss/2.0/link.php new file mode 100644 index 0000000000..125c33bfcc --- /dev/null +++ b/simplepie/test/feed_link/SPtests/rss/2.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Link_Test_RSS_20_Link extends SimplePie_Feed_Link_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <link>http://example.com/</link> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/atom/0.3/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/atom/0.3/dc/1.0/title.php new file mode 100644 index 0000000000..ab0a13978e --- /dev/null +++ b/simplepie/test/feed_title/SPtests/atom/0.3/dc/1.0/title.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Atom_03_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:title>Feed Title</dc:title> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/atom/0.3/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/atom/0.3/dc/1.1/title.php new file mode 100644 index 0000000000..20db9d9a1e --- /dev/null +++ b/simplepie/test/feed_title/SPtests/atom/0.3/dc/1.1/title.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Atom_03_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:title>Feed Title</dc:title> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/atom/0.3/title.php new file mode 100644 index 0000000000..236afed1a6 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/atom/0.3/title.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <title>Feed Title</title> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/atom/1.0/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/atom/1.0/dc/1.0/title.php new file mode 100644 index 0000000000..c95b5e70c6 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/atom/1.0/dc/1.0/title.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Atom_10_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <dc:title>Feed Title</dc:title> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/atom/1.0/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/atom/1.0/dc/1.1/title.php new file mode 100644 index 0000000000..a67f909250 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/atom/1.0/dc/1.1/title.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Atom_10_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:title>Feed Title</dc:title> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/atom/1.0/title.php new file mode 100644 index 0000000000..bfbf2aeedb --- /dev/null +++ b/simplepie/test/feed_title/SPtests/atom/1.0/title.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <title>Feed Title</title> +</feed>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/16.0.php b/simplepie/test/feed_title/SPtests/bugs/16.0.php new file mode 100644 index 0000000000..ab92612ae4 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/16.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_16_Test_0 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" +"http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <title>Feed with DOCTYPE</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed with DOCTYPE'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/174.0.php b/simplepie/test/feed_title/SPtests/bugs/174.0.php new file mode 100644 index 0000000000..9625463b77 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/174.0.php @@ -0,0 +1,20 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_174_Test_0 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<?xml version = "1.0" encoding = "UTF-8" ?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <title>Spaces in prolog</title> +</feed>'; + } + + function expected() + { + $this->expected = 'Spaces in prolog'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/18.0.php b/simplepie/test/feed_title/SPtests/bugs/18.0.php new file mode 100644 index 0000000000..5f63db2520 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/18.0.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_18_Test_0 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>Channel title</title> + <image> + <title>Image title</title> + </image> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Channel title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/18.1.php b/simplepie/test/feed_title/SPtests/bugs/18.1.php new file mode 100644 index 0000000000..d51c3d3df7 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/18.1.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_18_Test_1 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <image> + <title>Image title</title> + </image> + <title>Channel title</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Channel title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/20.0.php b/simplepie/test/feed_title/SPtests/bugs/20.0.php new file mode 100644 index 0000000000..4d1c394b54 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/20.0.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_20_Test_0 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<a:feed xmlns:a="http://www.w3.org/2005/Atom" xmlns="http://www.w3.org/1999/xhtml"> + <a:title>Non-default namespace</a:title> +</a:feed>'; + } + + function expected() + { + $this->expected = 'Non-default namespace'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/20.1.php b/simplepie/test/feed_title/SPtests/bugs/20.1.php new file mode 100644 index 0000000000..f46fc622bd --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/20.1.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_20_Test_1 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<a:feed xmlns:a="http://www.w3.org/2005/Atom" xmlns="http://www.w3.org/1999/xhtml"> + <a:title type="xhtml"><div>Non-default namespace</div></a:title> +</a:feed>'; + } + + function expected() + { + $this->expected = 'Non-default namespace'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/20.2.php b/simplepie/test/feed_title/SPtests/bugs/20.2.php new file mode 100644 index 0000000000..ed7d75e424 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/20.2.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_20_Test_2 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:h="http://www.w3.org/1999/xhtml"> + <title type="xhtml"><h:div>Non-default namespace</h:div></title> +</feed>'; + } + + function expected() + { + $this->expected = 'Non-default namespace'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/272.0.php b/simplepie/test/feed_title/SPtests/bugs/272.0.php new file mode 100644 index 0000000000..5bd7316135 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/272.0.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_272_Test_0 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <title>Ampersand: <![CDATA[&]]></title> +</feed>'; + } + + function expected() + { + $this->expected = 'Ampersand: &'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/bugs/272.1.php b/simplepie/test/feed_title/SPtests/bugs/272.1.php new file mode 100644 index 0000000000..5beda2ded4 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/bugs/272.1.php @@ -0,0 +1,19 @@ +<?php + +class SimplePie_Feed_Title_Test_Bug_272_Test_1 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <title><![CDATA[&]]>: Ampersand</title> +</feed>'; + } + + function expected() + { + $this->expected = '&: Ampersand'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.90/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/rss/0.90/atom/0.3/title.php new file mode 100644 index 0000000000..146f566f3b --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.90/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_090_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.90/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.90/atom/1.0/title.php new file mode 100644 index 0000000000..6e6ce93876 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.90/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_090_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.90/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.90/dc/1.0/title.php new file mode 100644 index 0000000000..e359b34dba --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.90/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_090_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.90/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/rss/0.90/dc/1.1/title.php new file mode 100644 index 0000000000..a060e3c6f3 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.90/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_090_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.90/title.php b/simplepie/test/feed_title/SPtests/rss/0.90/title.php new file mode 100644 index 0000000000..cfde01d282 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.90/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_090_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <channel> + <title>Feed Title</title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/0.3/title.php new file mode 100644 index 0000000000..51e0ef7497 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/0.3/title.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Netscape_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/1.0/title.php new file mode 100644 index 0000000000..2daf561f6e --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/atom/1.0/title.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Netscape_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.0/title.php new file mode 100644 index 0000000000..c95fcd4d86 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.0/title.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Netscape_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.1/title.php new file mode 100644 index 0000000000..b5c9c52118 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/dc/1.1/title.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Netscape_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-netscape/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/title.php new file mode 100644 index 0000000000..928bbbe81f --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-netscape/title.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Netscape_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <title>Feed Title</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/0.3/title.php new file mode 100644 index 0000000000..b104820c00 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Userland_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/1.0/title.php new file mode 100644 index 0000000000..f109e13de5 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-userland/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Userland_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.0/title.php new file mode 100644 index 0000000000..2d6e60833c --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Userland_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.1/title.php new file mode 100644 index 0000000000..6436bb4465 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-userland/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Userland_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.91-userland/title.php b/simplepie/test/feed_title/SPtests/rss/0.91-userland/title.php new file mode 100644 index 0000000000..5ce3b1d4e5 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.91-userland/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_091_Userland_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <title>Feed Title</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.92/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/rss/0.92/atom/0.3/title.php new file mode 100644 index 0000000000..48209c77b2 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.92/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_092_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.92/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.92/atom/1.0/title.php new file mode 100644 index 0000000000..7af135c4d3 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.92/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_092_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.92/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/0.92/dc/1.0/title.php new file mode 100644 index 0000000000..dac1d51ef5 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.92/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_092_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.92/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/rss/0.92/dc/1.1/title.php new file mode 100644 index 0000000000..48ad28654c --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.92/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_092_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/0.92/title.php b/simplepie/test/feed_title/SPtests/rss/0.92/title.php new file mode 100644 index 0000000000..fe948f0d38 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/0.92/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_092_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <title>Feed Title</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/1.0/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/rss/1.0/atom/0.3/title.php new file mode 100644 index 0000000000..753863a245 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/1.0/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_10_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/1.0/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/1.0/atom/1.0/title.php new file mode 100644 index 0000000000..8b8bfe95f7 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/1.0/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_10_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/1.0/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/1.0/dc/1.0/title.php new file mode 100644 index 0000000000..2239c10f6f --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/1.0/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_10_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/1.0/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/rss/1.0/dc/1.1/title.php new file mode 100644 index 0000000000..d764d27155 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/1.0/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_10_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/1.0/title.php new file mode 100644 index 0000000000..bcf55cf8a6 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <channel> + <title>Feed Title</title> + </channel> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/2.0/atom/0.3/title.php b/simplepie/test/feed_title/SPtests/rss/2.0/atom/0.3/title.php new file mode 100644 index 0000000000..deda0f1e72 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/2.0/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_20_Atom_03_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/2.0/atom/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/2.0/atom/1.0/title.php new file mode 100644 index 0000000000..b71cfa2b90 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/2.0/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_20_Atom_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <a:title>Feed Title</a:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/2.0/dc/1.0/title.php b/simplepie/test/feed_title/SPtests/rss/2.0/dc/1.0/title.php new file mode 100644 index 0000000000..e84fb0c8fe --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/2.0/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_20_DC_10_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/2.0/dc/1.1/title.php b/simplepie/test/feed_title/SPtests/rss/2.0/dc/1.1/title.php new file mode 100644 index 0000000000..2a7dd59d83 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/2.0/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_20_DC_11_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <dc:title>Feed Title</dc:title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/SPtests/rss/2.0/title.php b/simplepie/test/feed_title/SPtests/rss/2.0/title.php new file mode 100644 index 0000000000..a2659932c8 --- /dev/null +++ b/simplepie/test/feed_title/SPtests/rss/2.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_Feed_Title_Test_RSS_20_Title extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>Feed Title</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Feed Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/1.php b/simplepie/test/feed_title/rss-profile/1.php new file mode 100644 index 0000000000..a9580571c5 --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/1.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_1 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>AT&T</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'AT&T'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/2.php b/simplepie/test/feed_title/rss-profile/2.php new file mode 100644 index 0000000000..e7635c9af5 --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/2.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_2 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>Bill & Ted\'s Excellent Adventure</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Bill & Ted\'s Excellent Adventure'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/3.php b/simplepie/test/feed_title/rss-profile/3.php new file mode 100644 index 0000000000..2b150591e5 --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/3.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_3 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>The &amp; entity</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'The &amp; entity'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/4.php b/simplepie/test/feed_title/rss-profile/4.php new file mode 100644 index 0000000000..d46435ada4 --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/4.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_4 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>I <3 Phil Ringnalda</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'I <3 Phil Ringnalda'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/5.php b/simplepie/test/feed_title/rss-profile/5.php new file mode 100644 index 0000000000..ca4d28cc7b --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/5.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_5 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>A < B</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'A < B'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/6.php b/simplepie/test/feed_title/rss-profile/6.php new file mode 100644 index 0000000000..525ca2052f --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/6.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_6 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>A<B</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'A<B'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/feed_title/rss-profile/7.php b/simplepie/test/feed_title/rss-profile/7.php new file mode 100644 index 0000000000..26d699b75d --- /dev/null +++ b/simplepie/test/feed_title/rss-profile/7.php @@ -0,0 +1,21 @@ +<?php + +class RSS_Profile_Title_7 extends SimplePie_Feed_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <title>Nice <gorilla> what\'s he weigh?</title> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Nice <gorilla> what\'s he weigh?'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.0/creator.php new file mode 100644 index 0000000000..c095916edc --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.0/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_Atom_03_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:creator>Item Author</dc:creator> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.1/creator.php new file mode 100644 index 0000000000..d113d437df --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/0.3/dc/1.1/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_Atom_03_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:creator>Item Author</dc:creator> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/0.3/feed.php b/simplepie/test/first_item_author_name/SPtests/atom/0.3/feed.php new file mode 100644 index 0000000000..9227ed53a3 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/0.3/feed.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Author_Name_Atom_03_Inheritance_Feed_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <author> + <name>Item Author</name> + </author> + <entry> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/atom/0.3/name.php new file mode 100644 index 0000000000..85b59cc8a6 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/0.3/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <author> + <name>Item Author</name> + </author> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.0/creator.php new file mode 100644 index 0000000000..46e152993f --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.0/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_Atom_10_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:creator>Item Author</dc:creator> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.1/creator.php new file mode 100644 index 0000000000..ef57ca7d5a --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/1.0/dc/1.1/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_Atom_10_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:creator>Item Author</dc:creator> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/1.0/feed.php b/simplepie/test/first_item_author_name/SPtests/atom/1.0/feed.php new file mode 100644 index 0000000000..cc85070665 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/1.0/feed.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Author_Name_Atom_10_Inheritance_Feed_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <author> + <name>Item Author</name> + </author> + <entry> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/atom/1.0/name.php new file mode 100644 index 0000000000..6bdbee31e8 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/1.0/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <author> + <name>Item Author</name> + </author> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/atom/1.0/source.php b/simplepie/test/first_item_author_name/SPtests/atom/1.0/source.php new file mode 100644 index 0000000000..34a59d7d53 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/atom/1.0/source.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Atom_10_Inheritance_Source_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <source> + <author> + <name>Item Author</name> + </author> + </source> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/0.3/name.php new file mode 100644 index 0000000000..98c19b55d2 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/0.3/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_090_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/1.0/name.php new file mode 100644 index 0000000000..5e9f2f3e06 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.90/atom/1.0/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_090_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.0/creator.php new file mode 100644 index 0000000000..36fec5ca83 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.0/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_090_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:creator>Item Author</dc:creator> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.1/creator.php new file mode 100644 index 0000000000..1468447aa4 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.90/dc/1.1/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_090_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:creator>Item Author</dc:creator> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/0.3/name.php new file mode 100644 index 0000000000..0103bb1ead --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/0.3/name.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Netscape_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/1.0/name.php new file mode 100644 index 0000000000..14e96823f9 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/atom/1.0/name.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Netscape_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.0/creator.php new file mode 100644 index 0000000000..bb5b6ba33b --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.0/creator.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Netscape_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.1/creator.php new file mode 100644 index 0000000000..8e07922080 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-netscape/dc/1.1/creator.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Netscape_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/0.3/name.php new file mode 100644 index 0000000000..ce3a62058e --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/0.3/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Userland_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/1.0/name.php new file mode 100644 index 0000000000..4645cd09c9 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/atom/1.0/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Userland_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.0/creator.php new file mode 100644 index 0000000000..75c5ddc384 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.0/creator.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Userland_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.1/creator.php new file mode 100644 index 0000000000..58ad0a22f3 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.91-userland/dc/1.1/creator.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_091_Userland_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/0.3/name.php new file mode 100644 index 0000000000..083b406269 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/0.3/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_092_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/1.0/name.php new file mode 100644 index 0000000000..41a0176241 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.92/atom/1.0/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_092_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.0/creator.php new file mode 100644 index 0000000000..dbf9f8ba6d --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.0/creator.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_092_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.1/creator.php new file mode 100644 index 0000000000..1cdfdfd9b2 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/0.92/dc/1.1/creator.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_092_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/0.3/name.php new file mode 100644 index 0000000000..42f9125732 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/0.3/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_10_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/1.0/name.php new file mode 100644 index 0000000000..927d365d77 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/1.0/atom/1.0/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_10_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.0/creator.php new file mode 100644 index 0000000000..9193b8b07c --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.0/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_10_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:creator>Item Author</dc:creator> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.1/creator.php new file mode 100644 index 0000000000..e66373a572 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/1.0/dc/1.1/creator.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_10_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:creator>Item Author</dc:creator> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/0.3/name.php b/simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/0.3/name.php new file mode 100644 index 0000000000..2a9b6b7a18 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/0.3/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_20_Atom_03_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/1.0/name.php b/simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/1.0/name.php new file mode 100644 index 0000000000..fc0d9df842 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/2.0/atom/1.0/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_20_Atom_10_Name extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:author> + <a:name>Item Author</a:name> + </a:author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/2.0/author.php b/simplepie/test/first_item_author_name/SPtests/rss/2.0/author.php new file mode 100644 index 0000000000..cf0c7fce2d --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/2.0/author.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_20_Author extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <author>example@example.com (Item Author)</author> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.0/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.0/creator.php new file mode 100644 index 0000000000..35c64dee0f --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.0/creator.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_20_DC_10_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.1/creator.php b/simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.1/creator.php new file mode 100644 index 0000000000..18e4e67f49 --- /dev/null +++ b/simplepie/test/first_item_author_name/SPtests/rss/2.0/dc/1.1/creator.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Author_Name_Test_RSS_20_DC_11_Creator extends SimplePie_First_Item_Author_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:creator>Item Author</dc:creator> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Author'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.0/subject.php new file mode 100644 index 0000000000..8f39d5f5c7 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Atom_03_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:subject>Item Category</dc:subject> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.1/subject.php new file mode 100644 index 0000000000..72bcfe2930 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/atom/0.3/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Atom_03_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:subject>Item Category</dc:subject> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.0/subject.php new file mode 100644 index 0000000000..d72d6f9d51 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Atom_10_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:subject>Item Category</dc:subject> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.1/subject.php new file mode 100644 index 0000000000..9850757a99 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/atom/1.0/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Atom_10_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:subject>Item Category</dc:subject> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/atom/1.0/label.php new file mode 100644 index 0000000000..1f2eb256f9 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <category label="Item Category"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/atom/1.0/term.php new file mode 100644 index 0000000000..0689665ce4 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <category term="Item Category"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/bugs/21.0.php b/simplepie/test/first_item_category_label/SPtests/bugs/21.0.php new file mode 100644 index 0000000000..774020471a --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/bugs/21.0.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_Bug_21_Test_0 extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <category term="Example category"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Example category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/label.php new file mode 100644 index 0000000000..4897dbdc5a --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_090_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:category label="Item Category"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/term.php new file mode 100644 index 0000000000..5cffbd7ea1 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.90/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_090_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:category term="Item Category"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.0/subject.php new file mode 100644 index 0000000000..ed415507a8 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_090_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:subject>Item Category</dc:subject> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.1/subject.php new file mode 100644 index 0000000000..6979f957fe --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.90/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_090_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:subject>Item Category</dc:subject> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php new file mode 100644 index 0000000000..cbd00ec023 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/label.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Netscape_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category label="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php new file mode 100644 index 0000000000..d1c3522e29 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/atom/1.0/term.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Netscape_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category term="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php new file mode 100644 index 0000000000..6a1a93e4e6 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.0/subject.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Netscape_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php new file mode 100644 index 0000000000..9cfb63341c --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-netscape/dc/1.1/subject.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Netscape_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php new file mode 100644 index 0000000000..bc9b9ed848 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/label.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Userland_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category label="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php new file mode 100644 index 0000000000..aacd5c8525 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/atom/1.0/term.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Userland_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category term="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php new file mode 100644 index 0000000000..5dfb246972 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.0/subject.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Userland_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php new file mode 100644 index 0000000000..6f583b7600 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.91-userland/dc/1.1/subject.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_091_Userland_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/label.php new file mode 100644 index 0000000000..9713aaae54 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/label.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_092_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category label="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/term.php new file mode 100644 index 0000000000..bc426d0dab --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.92/atom/1.0/term.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_092_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category term="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.92/category.php b/simplepie/test/first_item_category_label/SPtests/rss/0.92/category.php new file mode 100644 index 0000000000..1ede844910 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.92/category.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_092_Category extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <category>Item Category</category> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.0/subject.php new file mode 100644 index 0000000000..28d0994220 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.0/subject.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_092_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.1/subject.php new file mode 100644 index 0000000000..bf41df8ac6 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/0.92/dc/1.1/subject.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_092_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/label.php new file mode 100644 index 0000000000..101ef33960 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/label.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_10_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:category label="Item Category"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/term.php new file mode 100644 index 0000000000..fa57fb34e6 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/1.0/atom/1.0/term.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_10_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:category term="Item Category"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.0/subject.php new file mode 100644 index 0000000000..7e2d5c6fdb --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.0/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_10_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:subject>Item Category</dc:subject> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.1/subject.php new file mode 100644 index 0000000000..1839c18f06 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/1.0/dc/1.1/subject.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_10_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:subject>Item Category</dc:subject> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/label.php b/simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/label.php new file mode 100644 index 0000000000..41c2cd6c63 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/label.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_20_Atom_10_Category_Label extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category label="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/term.php b/simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/term.php new file mode 100644 index 0000000000..b257106e4a --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/2.0/atom/1.0/term.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_20_Atom_10_Category_Term extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:category term="Item Category"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/2.0/category.php b/simplepie/test/first_item_category_label/SPtests/rss/2.0/category.php new file mode 100644 index 0000000000..c691b2395f --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/2.0/category.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_20_Category extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <category>Item Category</category> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.0/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.0/subject.php new file mode 100644 index 0000000000..26f43606d4 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.0/subject.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_20_DC_10_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.1/subject.php b/simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.1/subject.php new file mode 100644 index 0000000000..8c8ab3f597 --- /dev/null +++ b/simplepie/test/first_item_category_label/SPtests/rss/2.0/dc/1.1/subject.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Category_Label_Test_RSS_20_DC_11_Subject extends SimplePie_First_Item_Category_Label_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:subject>Item Category</dc:subject> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Category'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/atom/0.3/content.php new file mode 100644 index 0000000000..7c7efb32d6 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/0.3/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <content>Item Description</content> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.0/description.php new file mode 100644 index 0000000000..d964440c23 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_03_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.1/description.php new file mode 100644 index 0000000000..79a91f4d82 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/0.3/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_03_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/atom/0.3/summary.php new file mode 100644 index 0000000000..420f007024 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/0.3/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <summary>Item Description</summary> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/atom/1.0/content.php new file mode 100644 index 0000000000..a35d9bac84 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/1.0/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <content>Item Description</content> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.0/description.php new file mode 100644 index 0000000000..37ec188f25 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_10_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.1/description.php new file mode 100644 index 0000000000..dca7893cf1 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/1.0/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_10_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/atom/1.0/summary.php new file mode 100644 index 0000000000..42028baac8 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/atom/1.0/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <summary>Item Description</summary> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/content.php new file mode 100644 index 0000000000..ee5a6226c0 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/summary.php new file mode 100644 index 0000000000..f1d8a56eb6 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/0.3/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/content.php new file mode 100644 index 0000000000..4c12dcb54c --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/summary.php new file mode 100644 index 0000000000..cc6de11ea5 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/atom/1.0/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.0/description.php new file mode 100644 index 0000000000..26c18ca295 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.1/description.php new file mode 100644 index 0000000000..495efcba0d --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.90/description.php b/simplepie/test/first_item_content/SPtests/rss/0.90/description.php new file mode 100644 index 0000000000..cbf6096f5c --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.90/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_090_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <description>Item Description</description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/content.php new file mode 100644 index 0000000000..9ddd307508 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/content.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/summary.php new file mode 100644 index 0000000000..1833d359f1 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/0.3/summary.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/content.php new file mode 100644 index 0000000000..7a4ac164ee --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/content.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/summary.php new file mode 100644 index 0000000000..e90f938e86 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/atom/1.0/summary.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.0/description.php new file mode 100644 index 0000000000..9606684c8b --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.0/description.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.1/description.php new file mode 100644 index 0000000000..5b9a2aede3 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/dc/1.1/description.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/description.php b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/description.php new file mode 100644 index 0000000000..0b1e8e618a --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-netscape/description.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Netscape_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/content.php new file mode 100644 index 0000000000..4287801e7b --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/summary.php new file mode 100644 index 0000000000..690a0eced8 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/0.3/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/content.php new file mode 100644 index 0000000000..cab5aa6e93 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/summary.php new file mode 100644 index 0000000000..f0f50d0a01 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/atom/1.0/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.0/description.php new file mode 100644 index 0000000000..4a63d5e4fa --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.1/description.php new file mode 100644 index 0000000000..d745953fb2 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/dc/1.1/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.91-userland/description.php b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/description.php new file mode 100644 index 0000000000..70353eeb92 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.91-userland/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_091_Userland_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/content.php new file mode 100644 index 0000000000..728dfb2d54 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/summary.php new file mode 100644 index 0000000000..195ef36010 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/0.3/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/content.php new file mode 100644 index 0000000000..f242785236 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/summary.php new file mode 100644 index 0000000000..4f6c314501 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/atom/1.0/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.0/description.php new file mode 100644 index 0000000000..8e5519261a --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.1/description.php new file mode 100644 index 0000000000..831b7c5a34 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/dc/1.1/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/0.92/description.php b/simplepie/test/first_item_content/SPtests/rss/0.92/description.php new file mode 100644 index 0000000000..eacb8ccfd3 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/0.92/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_092_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/content.php new file mode 100644 index 0000000000..bbb324a6e3 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/summary.php new file mode 100644 index 0000000000..522508bf9a --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/0.3/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/content.php new file mode 100644 index 0000000000..6d63fd1573 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/summary.php new file mode 100644 index 0000000000..7d252362f5 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/atom/1.0/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.0/description.php new file mode 100644 index 0000000000..8e7ea6a913 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.1/description.php new file mode 100644 index 0000000000..b648349b5b --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/1.0/description.php new file mode 100644 index 0000000000..c38cb6a4d9 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <description>Item Description</description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/content.php b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/content.php new file mode 100644 index 0000000000..9d8d7a436b --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_Atom_03_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/summary.php b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/summary.php new file mode 100644 index 0000000000..3964ec9b3b --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/0.3/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_Atom_03_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/content.php b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/content.php new file mode 100644 index 0000000000..fac5d7d8f2 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_Atom_10_Content extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/summary.php b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/summary.php new file mode 100644 index 0000000000..13e8b73184 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/atom/1.0/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_Atom_10_Summary extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.0/description.php b/simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.0/description.php new file mode 100644 index 0000000000..a4844832e5 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_DC_10_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.1/description.php b/simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.1/description.php new file mode 100644 index 0000000000..27eae4f7a3 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/dc/1.1/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_DC_11_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_content/SPtests/rss/2.0/description.php b/simplepie/test/first_item_content/SPtests/rss/2.0/description.php new file mode 100644 index 0000000000..bdbb248b02 --- /dev/null +++ b/simplepie/test/first_item_content/SPtests/rss/2.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Content_Test_RSS_20_Description extends SimplePie_First_Item_Content_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/atom/0.3/name.php new file mode 100644 index 0000000000..5dc4380e12 --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/atom/0.3/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <contributor> + <name>Item Contributor</name> + </contributor> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/atom/1.0/name.php new file mode 100644 index 0000000000..25185c5145 --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/atom/1.0/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <contributor> + <name>Item Contributor</name> + </contributor> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/0.3/name.php new file mode 100644 index 0000000000..281edd0654 --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/0.3/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_090_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/1.0/name.php new file mode 100644 index 0000000000..a03949c2cf --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.90/atom/1.0/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_090_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/0.3/name.php new file mode 100644 index 0000000000..58f3cc079a --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/0.3/name.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_091_Netscape_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/1.0/name.php new file mode 100644 index 0000000000..3cfc61c57f --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-netscape/atom/1.0/name.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_091_Netscape_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/0.3/name.php new file mode 100644 index 0000000000..18d9764ab5 --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/0.3/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_091_Userland_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/1.0/name.php new file mode 100644 index 0000000000..4978f7c6ed --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.91-userland/atom/1.0/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_091_Userland_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/0.3/name.php new file mode 100644 index 0000000000..f1d4c6002b --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/0.3/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_092_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/1.0/name.php new file mode 100644 index 0000000000..0f3f7ed540 --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/0.92/atom/1.0/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_092_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/0.3/name.php new file mode 100644 index 0000000000..25386d641c --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/0.3/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_10_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/1.0/name.php new file mode 100644 index 0000000000..f925e1d0eb --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/1.0/atom/1.0/name.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_10_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/0.3/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/0.3/name.php new file mode 100644 index 0000000000..228307f11e --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/0.3/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_20_Atom_03_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/1.0/name.php b/simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/1.0/name.php new file mode 100644 index 0000000000..16a49e81f3 --- /dev/null +++ b/simplepie/test/first_item_contributor_name/SPtests/rss/2.0/atom/1.0/name.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Contributor_Name_Test_RSS_20_Atom_10_Name extends SimplePie_First_Item_Contributor_Name_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:contributor> + <a:name>Item Contributor</a:name> + </a:contributor> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Contributor'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/atom/0.3/created.php new file mode 100644 index 0000000000..11536de7b1 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/0.3/created.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <created>2007-01-11T16:00:00Z</created> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.0/date.php new file mode 100644 index 0000000000..c0ef7e379e --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.0/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_03_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.1/date.php new file mode 100644 index 0000000000..fe865c0b76 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/0.3/dc/1.1/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_03_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/atom/0.3/issued.php new file mode 100644 index 0000000000..003c60f6d4 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/0.3/issued.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <issued>2007-01-11T16:00:00Z</issued> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/atom/0.3/modified.php new file mode 100644 index 0000000000..3d52614e77 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/0.3/modified.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <modified>2007-01-11T16:00:00Z</modified> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.0/date.php new file mode 100644 index 0000000000..ae950d3420 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.0/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_10_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.1/date.php new file mode 100644 index 0000000000..12b2aff763 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/1.0/dc/1.1/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_10_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/atom/1.0/published.php new file mode 100644 index 0000000000..2aa2311ee0 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/1.0/published.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <published>2007-01-11T16:00:00Z</published> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/atom/1.0/updated.php new file mode 100644 index 0000000000..e94af475a3 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/atom/1.0/updated.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <updated>2007-01-11T16:00:00Z</updated> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/bugs/876.0.php b/simplepie/test/first_item_date/SPtests/bugs/876.0.php new file mode 100644 index 0000000000..8e01cdd004 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/bugs/876.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_Bug_876_Test_0 extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <pubDate></pubDate> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = null; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/created.php new file mode 100644 index 0000000000..46ecaa346a --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/created.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:created>2007-01-11T16:00:00Z</a:created> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/issued.php new file mode 100644 index 0000000000..42c5f968c0 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/issued.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:issued>2007-01-11T16:00:00Z</a:issued> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/modified.php new file mode 100644 index 0000000000..835cde9a42 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/0.3/modified.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:modified>2007-01-11T16:00:00Z</a:modified> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/published.php new file mode 100644 index 0000000000..695911ac04 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/published.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:published>2007-01-11T16:00:00Z</a:published> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/updated.php new file mode 100644 index 0000000000..dfc04231a4 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/atom/1.0/updated.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:updated>2007-01-11T16:00:00Z</a:updated> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.0/date.php new file mode 100644 index 0000000000..ef4dd3605c --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.0/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.1/date.php new file mode 100644 index 0000000000..f87766f55a --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.90/dc/1.1/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_090_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/created.php new file mode 100644 index 0000000000..641b8eb71c --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/created.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:created>2007-01-11T16:00:00Z</a:created> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/issued.php new file mode 100644 index 0000000000..9d5068c44c --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/issued.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:issued>2007-01-11T16:00:00Z</a:issued> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/modified.php new file mode 100644 index 0000000000..7e11d8bc12 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/0.3/modified.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:modified>2007-01-11T16:00:00Z</a:modified> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/published.php new file mode 100644 index 0000000000..4de5d2aa74 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/published.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:published>2007-01-11T16:00:00Z</a:published> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/updated.php new file mode 100644 index 0000000000..21f48c0d22 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/atom/1.0/updated.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:updated>2007-01-11T16:00:00Z</a:updated> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.0/date.php new file mode 100644 index 0000000000..ab2eab16ce --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.0/date.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.1/date.php new file mode 100644 index 0000000000..777febe1bd --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-netscape/dc/1.1/date.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Netscape_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/created.php new file mode 100644 index 0000000000..d851d34ecb --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/created.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:created>2007-01-11T16:00:00Z</a:created> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/issued.php new file mode 100644 index 0000000000..ed543b49b2 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/issued.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:issued>2007-01-11T16:00:00Z</a:issued> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/modified.php new file mode 100644 index 0000000000..b852522953 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/0.3/modified.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:modified>2007-01-11T16:00:00Z</a:modified> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/published.php new file mode 100644 index 0000000000..452dc2f900 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/published.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:published>2007-01-11T16:00:00Z</a:published> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/updated.php new file mode 100644 index 0000000000..14acc746fe --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/atom/1.0/updated.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:updated>2007-01-11T16:00:00Z</a:updated> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.0/date.php new file mode 100644 index 0000000000..540704e5ae --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.0/date.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.1/date.php new file mode 100644 index 0000000000..7d38369d6b --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.91-userland/dc/1.1/date.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_091_Userland_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/created.php new file mode 100644 index 0000000000..1b2a871853 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/created.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:created>2007-01-11T16:00:00Z</a:created> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/issued.php new file mode 100644 index 0000000000..bf891fc8d7 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/issued.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:issued>2007-01-11T16:00:00Z</a:issued> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/modified.php new file mode 100644 index 0000000000..652cdb883f --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/0.3/modified.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:modified>2007-01-11T16:00:00Z</a:modified> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/published.php new file mode 100644 index 0000000000..5440557794 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/published.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:published>2007-01-11T16:00:00Z</a:published> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/updated.php new file mode 100644 index 0000000000..2c39fdf5b3 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/atom/1.0/updated.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:updated>2007-01-11T16:00:00Z</a:updated> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.0/date.php new file mode 100644 index 0000000000..3b76563e2b --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.0/date.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.1/date.php new file mode 100644 index 0000000000..466df46880 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/0.92/dc/1.1/date.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_092_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/created.php new file mode 100644 index 0000000000..b3f7db7e23 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/created.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:created>2007-01-11T16:00:00Z</a:created> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/issued.php new file mode 100644 index 0000000000..7d59d4d991 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/issued.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:issued>2007-01-11T16:00:00Z</a:issued> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/modified.php new file mode 100644 index 0000000000..fa6b3a9325 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/0.3/modified.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:modified>2007-01-11T16:00:00Z</a:modified> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/published.php new file mode 100644 index 0000000000..cc5bea3dc2 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/published.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:published>2007-01-11T16:00:00Z</a:published> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/updated.php new file mode 100644 index 0000000000..e578c58fd8 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/atom/1.0/updated.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:updated>2007-01-11T16:00:00Z</a:updated> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.0/date.php new file mode 100644 index 0000000000..5d3e6170bc --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.0/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.1/date.php new file mode 100644 index 0000000000..d897a418c6 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/1.0/dc/1.1/date.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_10_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/created.php b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/created.php new file mode 100644 index 0000000000..27206e6c2f --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/created.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_Atom_03_Created extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:created>2007-01-11T16:00:00Z</a:created> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/issued.php b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/issued.php new file mode 100644 index 0000000000..feb659ea74 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/issued.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_Atom_03_Issued extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:issued>2007-01-11T16:00:00Z</a:issued> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/modified.php b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/modified.php new file mode 100644 index 0000000000..8636075f05 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/0.3/modified.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_Atom_03_Modified extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:modified>2007-01-11T16:00:00Z</a:modified> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/published.php b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/published.php new file mode 100644 index 0000000000..6af2c9f101 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/published.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_Atom_10_Published extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:published>2007-01-11T16:00:00Z</a:published> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/updated.php b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/updated.php new file mode 100644 index 0000000000..67fc954d08 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/atom/1.0/updated.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_Atom_10_Updated extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:updated>2007-01-11T16:00:00Z</a:updated> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.0/date.php b/simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.0/date.php new file mode 100644 index 0000000000..2b7741f99e --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.0/date.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_DC_10_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.1/date.php b/simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.1/date.php new file mode 100644 index 0000000000..658e140f34 --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/dc/1.1/date.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_DC_11_Date extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:date>2007-01-11T16:00:00Z</dc:date> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_date/SPtests/rss/2.0/pubdate.php b/simplepie/test/first_item_date/SPtests/rss/2.0/pubdate.php new file mode 100644 index 0000000000..797b1a951b --- /dev/null +++ b/simplepie/test/first_item_date/SPtests/rss/2.0/pubdate.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Date_Test_RSS_20_pubDate extends SimplePie_First_Item_Date_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <pubDate>2007-01-11T16:00:00Z</pubDate> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 1168531200; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/atom/0.3/content.php new file mode 100644 index 0000000000..9ac11e32a8 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/0.3/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <content>Item Description</content> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.0/description.php new file mode 100644 index 0000000000..e02d402c85 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_03_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.1/description.php new file mode 100644 index 0000000000..cdc8b2154d --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/0.3/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_03_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/atom/0.3/summary.php new file mode 100644 index 0000000000..6db7f6b50d --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/0.3/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <summary>Item Description</summary> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/atom/1.0/content.php new file mode 100644 index 0000000000..4a31402091 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/1.0/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <content>Item Description</content> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.0/description.php new file mode 100644 index 0000000000..3bed47f970 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_10_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.1/description.php new file mode 100644 index 0000000000..8c2ce46b03 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/1.0/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_10_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:description>Item Description</dc:description> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/atom/1.0/summary.php new file mode 100644 index 0000000000..1c08a0687c --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/atom/1.0/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <summary>Item Description</summary> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/content.php new file mode 100644 index 0000000000..e4a5a43f5e --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/summary.php new file mode 100644 index 0000000000..b24991f129 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/0.3/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/content.php new file mode 100644 index 0000000000..2ed7024318 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/summary.php new file mode 100644 index 0000000000..68a7dcc59d --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/atom/1.0/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.0/description.php new file mode 100644 index 0000000000..dfdcd57222 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.1/description.php new file mode 100644 index 0000000000..53e050510c --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.90/description.php b/simplepie/test/first_item_description/SPtests/rss/0.90/description.php new file mode 100644 index 0000000000..2acaa7f0fb --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.90/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_090_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <description>Item Description</description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/content.php new file mode 100644 index 0000000000..f7fd152622 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/content.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/summary.php new file mode 100644 index 0000000000..d839aa9e15 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/0.3/summary.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/content.php new file mode 100644 index 0000000000..f182dfc669 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/content.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/summary.php new file mode 100644 index 0000000000..5e5f2a8a58 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/atom/1.0/summary.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.0/description.php new file mode 100644 index 0000000000..216cb39c0c --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.0/description.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.1/description.php new file mode 100644 index 0000000000..e706be1ffe --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/dc/1.1/description.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/description.php b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/description.php new file mode 100644 index 0000000000..8886ac35b8 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-netscape/description.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Netscape_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/content.php new file mode 100644 index 0000000000..0a03018875 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/summary.php new file mode 100644 index 0000000000..a0a9e6f341 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/0.3/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/content.php new file mode 100644 index 0000000000..c3eae044a9 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/summary.php new file mode 100644 index 0000000000..27b66ce70d --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/atom/1.0/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.0/description.php new file mode 100644 index 0000000000..d25e0cd612 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.1/description.php new file mode 100644 index 0000000000..8fb97cf719 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/dc/1.1/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.91-userland/description.php b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/description.php new file mode 100644 index 0000000000..f01c5ff5c8 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.91-userland/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_091_Userland_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/content.php new file mode 100644 index 0000000000..c906a96a79 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/summary.php new file mode 100644 index 0000000000..da2a88f703 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/0.3/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/content.php new file mode 100644 index 0000000000..d245f0037a --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/summary.php new file mode 100644 index 0000000000..9ea440e879 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/atom/1.0/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.0/description.php new file mode 100644 index 0000000000..09a9f6027d --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.1/description.php new file mode 100644 index 0000000000..56e1f83519 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/dc/1.1/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/0.92/description.php b/simplepie/test/first_item_description/SPtests/rss/0.92/description.php new file mode 100644 index 0000000000..76d7a02229 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/0.92/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_092_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/content.php new file mode 100644 index 0000000000..e3f5cb7bfa --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/summary.php new file mode 100644 index 0000000000..f920bc9a58 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/0.3/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/content.php new file mode 100644 index 0000000000..1a68571d45 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/content.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:content>Item Description</a:content> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/summary.php new file mode 100644 index 0000000000..3e9190464c --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/atom/1.0/summary.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:summary>Item Description</a:summary> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.0/description.php new file mode 100644 index 0000000000..187d4f11e2 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.1/description.php new file mode 100644 index 0000000000..487cf5cc32 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/dc/1.1/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:description>Item Description</dc:description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/1.0/description.php new file mode 100644 index 0000000000..21ec6f0c5c --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/1.0/description.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <description>Item Description</description> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/content.php b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/content.php new file mode 100644 index 0000000000..29bf9f2c41 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_Atom_03_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/summary.php b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/summary.php new file mode 100644 index 0000000000..f853e231ab --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/0.3/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_Atom_03_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/content.php b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/content.php new file mode 100644 index 0000000000..d712ece73a --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/content.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_Atom_10_Content extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:content>Item Description</a:content> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/summary.php b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/summary.php new file mode 100644 index 0000000000..ab0aa2d206 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/atom/1.0/summary.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_Atom_10_Summary extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:summary>Item Description</a:summary> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.0/description.php b/simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.0/description.php new file mode 100644 index 0000000000..19fa60a635 --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_DC_10_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.1/description.php b/simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.1/description.php new file mode 100644 index 0000000000..08e5c1795a --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/dc/1.1/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_DC_11_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:description>Item Description</dc:description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_description/SPtests/rss/2.0/description.php b/simplepie/test/first_item_description/SPtests/rss/2.0/description.php new file mode 100644 index 0000000000..d2b16bef2d --- /dev/null +++ b/simplepie/test/first_item_description/SPtests/rss/2.0/description.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Description_Test_RSS_20_Description extends SimplePie_First_Item_Description_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <description>Item Description</description> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Description'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.0/identifier.php new file mode 100644 index 0000000000..44a34d499d --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.0/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_Atom_03_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:identifier>http://example.com/</dc:identifier> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.1/identifier.php new file mode 100644 index 0000000000..ddb9ca094b --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/atom/0.3/dc/1.1/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_Atom_03_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:identifier>http://example.com/</dc:identifier> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/atom/0.3/id.php new file mode 100644 index 0000000000..de783213a0 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/atom/0.3/id.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <id>http://example.com/</id> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.0/identifier.php new file mode 100644 index 0000000000..cdba6bf0d5 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.0/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_Atom_10_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:identifier>http://example.com/</dc:identifier> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.1/identifier.php new file mode 100644 index 0000000000..e1f8d40c77 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/atom/1.0/dc/1.1/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_Atom_10_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:identifier>http://example.com/</dc:identifier> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/atom/1.0/id.php new file mode 100644 index 0000000000..f9bd4e2b96 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/atom/1.0/id.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <id>http://example.com/</id> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.90/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/rss/0.90/atom/0.3/id.php new file mode 100644 index 0000000000..fd7065463a --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.90/atom/0.3/id.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_090_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:id>http://example.com/</a:id> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.90/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/rss/0.90/atom/1.0/id.php new file mode 100644 index 0000000000..d78046f252 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.90/atom/1.0/id.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_090_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:id>http://example.com/</a:id> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.0/identifier.php new file mode 100644 index 0000000000..7e873436bb --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.0/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_090_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.1/identifier.php new file mode 100644 index 0000000000..6a6b7a3995 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.90/dc/1.1/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_090_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/0.3/id.php new file mode 100644 index 0000000000..0d2396fcea --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/0.3/id.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Netscape_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/1.0/id.php new file mode 100644 index 0000000000..982f0712df --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/atom/1.0/id.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Netscape_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.0/identifier.php new file mode 100644 index 0000000000..693b10ec7e --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.0/identifier.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Netscape_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.1/identifier.php new file mode 100644 index 0000000000..0e1683b2c9 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-netscape/dc/1.1/identifier.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Netscape_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/0.3/id.php new file mode 100644 index 0000000000..0ef6eabcbb --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/0.3/id.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Userland_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/1.0/id.php new file mode 100644 index 0000000000..36a4a00f5a --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/atom/1.0/id.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Userland_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.0/identifier.php new file mode 100644 index 0000000000..f5b6b114f8 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.0/identifier.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Userland_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.1/identifier.php new file mode 100644 index 0000000000..c9668f27d7 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.91-userland/dc/1.1/identifier.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_091_Userland_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.92/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/rss/0.92/atom/0.3/id.php new file mode 100644 index 0000000000..b8fefd284b --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.92/atom/0.3/id.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_092_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.92/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/rss/0.92/atom/1.0/id.php new file mode 100644 index 0000000000..2dd2ee2b17 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.92/atom/1.0/id.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_092_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.0/identifier.php new file mode 100644 index 0000000000..3d60d9a988 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.0/identifier.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_092_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.1/identifier.php new file mode 100644 index 0000000000..fb6989a470 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/0.92/dc/1.1/identifier.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_092_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/1.0/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/rss/1.0/atom/0.3/id.php new file mode 100644 index 0000000000..095302d0f9 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/1.0/atom/0.3/id.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_10_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:id>http://example.com/</a:id> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/1.0/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/rss/1.0/atom/1.0/id.php new file mode 100644 index 0000000000..65fb43c45c --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/1.0/atom/1.0/id.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_10_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:id>http://example.com/</a:id> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.0/identifier.php new file mode 100644 index 0000000000..e9194ca294 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.0/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_10_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.1/identifier.php new file mode 100644 index 0000000000..be2907fcbf --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/1.0/dc/1.1/identifier.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_10_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/2.0/atom/0.3/id.php b/simplepie/test/first_item_id/SPtests/rss/2.0/atom/0.3/id.php new file mode 100644 index 0000000000..5c090f750b --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/2.0/atom/0.3/id.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_20_Atom_03_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/2.0/atom/1.0/id.php b/simplepie/test/first_item_id/SPtests/rss/2.0/atom/1.0/id.php new file mode 100644 index 0000000000..fb4cd54717 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/2.0/atom/1.0/id.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_20_Atom_10_ID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:id>http://example.com/</a:id> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.0/identifier.php b/simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.0/identifier.php new file mode 100644 index 0000000000..dc9e672693 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.0/identifier.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_20_DC_10_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.1/identifier.php b/simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.1/identifier.php new file mode 100644 index 0000000000..3acc1bda79 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/2.0/dc/1.1/identifier.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_20_DC_11_Identifier extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:identifier>http://example.com/</dc:identifier> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_id/SPtests/rss/2.0/guid.php b/simplepie/test/first_item_id/SPtests/rss/2.0/guid.php new file mode 100644 index 0000000000..9af6e3a767 --- /dev/null +++ b/simplepie/test/first_item_id/SPtests/rss/2.0/guid.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_ID_Test_RSS_20_GUID extends SimplePie_First_Item_ID_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <guid>http://example.com/</guid> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/atom/0.3/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/atom/0.3/geo/lat.php new file mode 100644 index 0000000000..fe187c6f97 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/atom/0.3/geo/lat.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_Atom_03_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <entry> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/atom/0.3/georss/point.php b/simplepie/test/first_item_latitude/SPtests/atom/0.3/georss/point.php new file mode 100644 index 0000000000..641c812a47 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/atom/0.3/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_Atom_03_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:georss="http://www.georss.org/georss"> + <entry> + <georss:point>55.701 12.552</georss:point> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/atom/1.0/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/atom/1.0/geo/lat.php new file mode 100644 index 0000000000..fad25f8cfa --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/atom/1.0/geo/lat.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_Atom_10_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <entry> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/atom/1.0/georss/point.php b/simplepie/test/first_item_latitude/SPtests/atom/1.0/georss/point.php new file mode 100644 index 0000000000..10a028a92c --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/atom/1.0/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_Atom_10_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss"> + <entry> + <georss:point>55.701 12.552</georss:point> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.90/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/rss/0.90/geo/lat.php new file mode 100644 index 0000000000..2881be89e5 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.90/geo/lat.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_090_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.90/georss/point.php b/simplepie/test/first_item_latitude/SPtests/rss/0.90/georss/point.php new file mode 100644 index 0000000000..9cbfcbf867 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.90/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_090_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:georss="http://www.georss.org/georss"> + <item> + <georss:point>55.701 12.552</georss:point> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/geo/lat.php new file mode 100644 index 0000000000..9dad031db9 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/geo/lat.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_091_Netscape_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/georss/point.php b/simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/georss/point.php new file mode 100644 index 0000000000..eed539da65 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.91-netscape/georss/point.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_091_Netscape_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/geo/lat.php new file mode 100644 index 0000000000..b22e5c8080 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/geo/lat.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_091_Userland_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/georss/point.php b/simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/georss/point.php new file mode 100644 index 0000000000..49c9cf10bc --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.91-userland/georss/point.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_091_Userland_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.92/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/rss/0.92/geo/lat.php new file mode 100644 index 0000000000..5c22e0278d --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.92/geo/lat.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_092_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/0.92/georss/point.php b/simplepie/test/first_item_latitude/SPtests/rss/0.92/georss/point.php new file mode 100644 index 0000000000..70845a61c3 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/0.92/georss/point.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_092_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/1.0/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/rss/1.0/geo/lat.php new file mode 100644 index 0000000000..bfe8aaedf5 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/1.0/geo/lat.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_10_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/1.0/georss/point.php b/simplepie/test/first_item_latitude/SPtests/rss/1.0/georss/point.php new file mode 100644 index 0000000000..e5da443303 --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/1.0/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_10_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:georss="http://www.georss.org/georss"> + <item> + <georss:point>55.701 12.552</georss:point> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/2.0/geo/lat.php b/simplepie/test/first_item_latitude/SPtests/rss/2.0/geo/lat.php new file mode 100644 index 0000000000..0eb4cbf90d --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/2.0/geo/lat.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_20_Geo_Lat extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_latitude/SPtests/rss/2.0/georss/point.php b/simplepie/test/first_item_latitude/SPtests/rss/2.0/georss/point.php new file mode 100644 index 0000000000..ccb54ba37b --- /dev/null +++ b/simplepie/test/first_item_latitude/SPtests/rss/2.0/georss/point.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Latitude_Test_RSS_20_Georss_Point extends SimplePie_First_Item_Latitude_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 55.701; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/atom/0.3/geo/long.php b/simplepie/test/first_item_longitude/SPtests/atom/0.3/geo/long.php new file mode 100644 index 0000000000..334fd1827b --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/atom/0.3/geo/long.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_Atom_03_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <entry> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/atom/0.3/georss/point.php b/simplepie/test/first_item_longitude/SPtests/atom/0.3/georss/point.php new file mode 100644 index 0000000000..fec93693ba --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/atom/0.3/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_Atom_03_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:georss="http://www.georss.org/georss"> + <entry> + <georss:point>55.701 12.552</georss:point> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/atom/1.0/geo/long.php b/simplepie/test/first_item_longitude/SPtests/atom/1.0/geo/long.php new file mode 100644 index 0000000000..96cd8fe1a4 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/atom/1.0/geo/long.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_Atom_10_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <entry> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/atom/1.0/georss/point.php b/simplepie/test/first_item_longitude/SPtests/atom/1.0/georss/point.php new file mode 100644 index 0000000000..a0e4864d86 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/atom/1.0/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_Atom_10_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss"> + <entry> + <georss:point>55.701 12.552</georss:point> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.90/geo/long.php b/simplepie/test/first_item_longitude/SPtests/rss/0.90/geo/long.php new file mode 100644 index 0000000000..4656bbc9b2 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.90/geo/long.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_090_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.90/georss/point.php b/simplepie/test/first_item_longitude/SPtests/rss/0.90/georss/point.php new file mode 100644 index 0000000000..4dfbf8d742 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.90/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_090_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:georss="http://www.georss.org/georss"> + <item> + <georss:point>55.701 12.552</georss:point> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/geo/long.php b/simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/geo/long.php new file mode 100644 index 0000000000..e2070c5c76 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/geo/long.php @@ -0,0 +1,25 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_091_Netscape_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/georss/point.php b/simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/georss/point.php new file mode 100644 index 0000000000..343651ec2a --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.91-netscape/georss/point.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_091_Netscape_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/geo/long.php b/simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/geo/long.php new file mode 100644 index 0000000000..19f92d20bc --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/geo/long.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_091_Userland_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/georss/point.php b/simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/georss/point.php new file mode 100644 index 0000000000..1bbc35d690 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.91-userland/georss/point.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_091_Userland_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.92/geo/long.php b/simplepie/test/first_item_longitude/SPtests/rss/0.92/geo/long.php new file mode 100644 index 0000000000..27a4ac88d6 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.92/geo/long.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_092_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/0.92/georss/point.php b/simplepie/test/first_item_longitude/SPtests/rss/0.92/georss/point.php new file mode 100644 index 0000000000..837e7d355c --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/0.92/georss/point.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_092_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/1.0/geo/long.php b/simplepie/test/first_item_longitude/SPtests/rss/1.0/geo/long.php new file mode 100644 index 0000000000..e7e6f302d0 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/1.0/geo/long.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_10_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/1.0/georss/point.php b/simplepie/test/first_item_longitude/SPtests/rss/1.0/georss/point.php new file mode 100644 index 0000000000..536381ecea --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/1.0/georss/point.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_10_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:georss="http://www.georss.org/georss"> + <item> + <georss:point>55.701 12.552</georss:point> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/2.0/geo/long.php b/simplepie/test/first_item_longitude/SPtests/rss/2.0/geo/long.php new file mode 100644 index 0000000000..f3ae64baba --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/2.0/geo/long.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_20_Geo_Long extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> + <channel> + <item> + <geo:lat>55.701</geo:lat> + <geo:long>12.552</geo:long> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_longitude/SPtests/rss/2.0/georss/point.php b/simplepie/test/first_item_longitude/SPtests/rss/2.0/georss/point.php new file mode 100644 index 0000000000..c1a7a94a44 --- /dev/null +++ b/simplepie/test/first_item_longitude/SPtests/rss/2.0/georss/point.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Longitude_Test_RSS_20_Georss_Point extends SimplePie_First_Item_Longitude_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:georss="http://www.georss.org/georss"> + <channel> + <item> + <georss:point>55.701 12.552</georss:point> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 12.552; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/atom/0.3/enclosure.php b/simplepie/test/first_item_permalink/SPtests/atom/0.3/enclosure.php new file mode 100644 index 0000000000..0c849473f6 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/atom/0.3/enclosure.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_03_Enclosure extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <link href="http://example.com/" rel="enclosure"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/atom/0.3/link.php b/simplepie/test/first_item_permalink/SPtests/atom/0.3/link.php new file mode 100644 index 0000000000..d45380ec13 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <link href="http://example.com/"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/atom/1.0/enclosure.php b/simplepie/test/first_item_permalink/SPtests/atom/1.0/enclosure.php new file mode 100644 index 0000000000..1c27385c6f --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/atom/1.0/enclosure.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_10_Enclosure extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <link href="http://example.com/" rel="enclosure"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/atom/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/atom/1.0/link.php new file mode 100644 index 0000000000..f998b2cd6c --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <link href="http://example.com/"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/10.0.php b/simplepie/test/first_item_permalink/SPtests/bugs/10.0.php new file mode 100644 index 0000000000..12f56b8c22 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/10.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_10_Test_0 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <guid>http://example.com/</guid> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/10.1.php b/simplepie/test/first_item_permalink/SPtests/bugs/10.1.php new file mode 100644 index 0000000000..78f115049f --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/10.1.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_10_Test_1 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <guid isPermaLink="true">http://example.com/</guid> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/10.2.php b/simplepie/test/first_item_permalink/SPtests/bugs/10.2.php new file mode 100644 index 0000000000..1611e3f7cc --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/10.2.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_10_Test_2 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <guid isPermaLink="meep">http://example.com/</guid> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/10.3.php b/simplepie/test/first_item_permalink/SPtests/bugs/10.3.php new file mode 100644 index 0000000000..ed9dbf4078 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/10.3.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_10_Test_3 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <guid isPermaLink="false">http://example.com/</guid> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = NULL; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/156.0.php b/simplepie/test/first_item_permalink/SPtests/bugs/156.0.php new file mode 100644 index 0000000000..0f9c5151df --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/156.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_156_Test_0 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <enclosure url="http://example.com/" length="1" type="audio/mpeg"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/176.0.php b/simplepie/test/first_item_permalink/SPtests/bugs/176.0.php new file mode 100644 index 0000000000..a71dd32493 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/176.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_176_Test_0 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <link rel="related" href="http://example.com/related"/> + <link rel="via" href="http://example.com/via"/> + <link rel="alternate" href="http://example.com/alternate"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/alternate'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/176.1.php b/simplepie/test/first_item_permalink/SPtests/bugs/176.1.php new file mode 100644 index 0000000000..0c217d283f --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/176.1.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_176_Test_1 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <link rel="alternate" href="http://example.com/alternate"/> + <link rel="related" href="http://example.com/related"/> + <link rel="via" href="http://example.com/via"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/alternate'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/176.2.php b/simplepie/test/first_item_permalink/SPtests/bugs/176.2.php new file mode 100644 index 0000000000..6464d2a2a3 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/176.2.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_176_Test_2 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <link rel="related" href="http://example.com/related"/> + <link rel="alternate" href="http://example.com/alternate"/> + <link rel="via" href="http://example.com/via"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/alternate'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/bugs/640.0.php b/simplepie/test/first_item_permalink/SPtests/bugs/640.0.php new file mode 100644 index 0000000000..a897bc82e6 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/bugs/640.0.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Bug_640_Test_0 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://example.com/" > + <entry> + <link href=""/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/0.3/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/0.3/link.php new file mode 100644 index 0000000000..fa52293bfa --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_090_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:link href="http://example.com/"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/1.0/link.php new file mode 100644 index 0000000000..c5df9496bf --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.90/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_090_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:link href="http://example.com/"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.90/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.90/link.php new file mode 100644 index 0000000000..72f585e4dc --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.90/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_090_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <link>http://example.com/</link> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/0.3/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/0.3/link.php new file mode 100644 index 0000000000..0b7881ee82 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/0.3/link.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Netscape_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/1.0/link.php new file mode 100644 index 0000000000..11bb1e8a2d --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/atom/1.0/link.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Netscape_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/link.php new file mode 100644 index 0000000000..5e5d36bca4 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-netscape/link.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Netscape_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <link>http://example.com/</link> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/0.91-userland.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/0.91-userland.php new file mode 100644 index 0000000000..a559dade22 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/0.91-userland.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Userland_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <link>http://example.com/</link> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3-enclosure.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3-enclosure.php new file mode 100644 index 0000000000..4a95c94d37 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3-enclosure.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Userland_Atom_03_Link_Enclosure extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:link href="http://example.com/" rel="enclosure"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3.php new file mode 100644 index 0000000000..be336dd2e0 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom0.3.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Userland_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0-enclosure.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0-enclosure.php new file mode 100644 index 0000000000..21dd730d24 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0-enclosure.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Userland_Atom_10_Link_Enclosure extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:link href="http://example.com/" rel="enclosure"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0.php b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0.php new file mode 100644 index 0000000000..61c07f3f11 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.91-userland/atom1.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_091_Userland_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/0.3/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/0.3/link.php new file mode 100644 index 0000000000..dbf60a01b6 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/0.3/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_092_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/1.0/link.php new file mode 100644 index 0000000000..a289f29ac9 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.92/atom/1.0/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_092_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/0.92/link.php b/simplepie/test/first_item_permalink/SPtests/rss/0.92/link.php new file mode 100644 index 0000000000..b3ca8fd347 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/0.92/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_092_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <link>http://example.com/</link> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/0.3/link.php b/simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/0.3/link.php new file mode 100644 index 0000000000..9149aa8d8f --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/0.3/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_10_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:link href="http://example.com/"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/1.0/link.php new file mode 100644 index 0000000000..7d64ed73c4 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/1.0/atom/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_10_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:link href="http://example.com/"/> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/1.0/link.php new file mode 100644 index 0000000000..2eb4b4fc03 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/1.0/link.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <link>http://example.com/</link> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/0.3/link.php b/simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/0.3/link.php new file mode 100644 index 0000000000..881212b2a9 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/0.3/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_20_Atom_03_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/1.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/1.0/link.php new file mode 100644 index 0000000000..224636dff5 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/2.0/atom/1.0/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_20_Atom_10_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:link href="http://example.com/"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/2.0/enclosure.php b/simplepie/test/first_item_permalink/SPtests/rss/2.0/enclosure.php new file mode 100644 index 0000000000..b58d06c050 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/2.0/enclosure.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_20_Enclosure extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <enclosure url="http://example.com/" length="1" type="text/html"/> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/rss/2.0/link.php b/simplepie/test/first_item_permalink/SPtests/rss/2.0/link.php new file mode 100644 index 0000000000..54734d94b0 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/rss/2.0/link.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_RSS_20_Link extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <link>http://example.com/</link> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'http://example.com/'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/xmlbase/1.php b/simplepie/test/first_item_permalink/SPtests/xmlbase/1.php new file mode 100644 index 0000000000..9e9be33cde --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/xmlbase/1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_10_xmlbase_1 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://example.com/"> + <entry> + <link rel="alternate" href="/alternate"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/alternate'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/xmlbase/2.php b/simplepie/test/first_item_permalink/SPtests/xmlbase/2.php new file mode 100644 index 0000000000..dccbbd79e3 --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/xmlbase/2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_10_xmlbase_2 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry xml:base="http://example.com/"> + <link rel="alternate" href="/alternate"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/alternate'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_permalink/SPtests/xmlbase/3.php b/simplepie/test/first_item_permalink/SPtests/xmlbase/3.php new file mode 100644 index 0000000000..3cb4732c1b --- /dev/null +++ b/simplepie/test/first_item_permalink/SPtests/xmlbase/3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Permalink_Test_Atom_10_xmlbase_3 extends SimplePie_First_Item_Permalink_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://example.org/"> + <entry> + <link rel="alternate" href="//example.com/alternate"/> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'http://example.com/alternate'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.0/title.php new file mode 100644 index 0000000000..c70757657b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:title>Item Title</dc:title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.1/title.php new file mode 100644 index 0000000000..9c4bedb326 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/atom/0.3/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:title>Item Title</dc:title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/atom/0.3/title.php new file mode 100644 index 0000000000..db7d19fb54 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.0/title.php new file mode 100644 index 0000000000..f9af26c080 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <entry> + <dc:title>Item Title</dc:title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.1/title.php new file mode 100644 index 0000000000..db83ac9595 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/atom/1.0/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <entry> + <dc:title>Item Title</dc:title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/atom/1.0/title.php new file mode 100644 index 0000000000..857fcd765a --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/174.0.php b/simplepie/test/first_item_title/SPtests/bugs/174.0.php new file mode 100644 index 0000000000..a515e88f48 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/174.0.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_174_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding = "UTF-8" ?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/179.0.10.1.php b/simplepie/test/first_item_title/SPtests/bugs/179.0.10.1.php new file mode 100644 index 0000000000..5c046aba3f --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/179.0.10.1.php @@ -0,0 +1,30 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_179_Post_10_Test_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Title 1</title> + <updated>2003-12-15T18:30:02Z</updated> + </entry> + <entry> + <title>Title 2</title> + <updated>2003-12-14T18:30:02Z</updated> + </entry> + <entry> + <title>Title 3</title> + <updated>2003-12-13T18:30:02Z</updated> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Title 1'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/179.0.10.2.php b/simplepie/test/first_item_title/SPtests/bugs/179.0.10.2.php new file mode 100644 index 0000000000..32dc55104f --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/179.0.10.2.php @@ -0,0 +1,30 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_179_Post_10_Test_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Title 2</title> + <updated>2003-12-14T18:30:02Z</updated> + </entry> + <entry> + <title>Title 1</title> + <updated>2003-12-15T18:30:02Z</updated> + </entry> + <entry> + <title>Title 3</title> + <updated>2003-12-13T18:30:02Z</updated> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Title 1'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/179.0.10.php b/simplepie/test/first_item_title/SPtests/bugs/179.0.10.php new file mode 100644 index 0000000000..2d964696b8 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/179.0.10.php @@ -0,0 +1,30 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_179_Post_10_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Title 1</title> + <updated>2003-12-13T18:30:02Z</updated> + </entry> + <entry> + <title>Title 2</title> + <updated>2003-12-13T18:30:02Z</updated> + </entry> + <entry> + <title>Title 3</title> + <updated>2003-12-13T18:30:02Z</updated> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Title 1'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/270.0.php b/simplepie/test/first_item_title/SPtests/bugs/270.0.php new file mode 100644 index 0000000000..4e494133a0 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/270.0.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_270_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><![CDATA[<title>]]></div></content> + <title>The title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'The title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/431.0.php b/simplepie/test/first_item_title/SPtests/bugs/431.0.php new file mode 100644 index 0000000000..691b0e7da8 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/431.0.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_431_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <title>Item title</title> + <image> + <title>Image title</title> + </image> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/431.1.php b/simplepie/test/first_item_title/SPtests/bugs/431.1.php new file mode 100644 index 0000000000..38f8ae34d3 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/431.1.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_431_Test_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <image> + <title>Image title</title> + </image> + <title>Item title</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/475.0.php b/simplepie/test/first_item_title/SPtests/bugs/475.0.php new file mode 100644 index 0000000000..17611a0a37 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/475.0.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_475_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <source> + <title>Source Title</title> + </source> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/475.1.php b/simplepie/test/first_item_title/SPtests/bugs/475.1.php new file mode 100644 index 0000000000..9bcfa3968d --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/475.1.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_475_Test_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item Title</title> + <source> + <title>Source Title</title> + </source> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/475.2.php b/simplepie/test/first_item_title/SPtests/bugs/475.2.php new file mode 100644 index 0000000000..388bc72d2c --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/475.2.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_475_Test_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item Title</title> + <x:foo xmlns:x="urn:foo"> + <title>Extension Title</title> + </x:foo> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/475.3.php b/simplepie/test/first_item_title/SPtests/bugs/475.3.php new file mode 100644 index 0000000000..d9d076bb2b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/475.3.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_475_Test_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <x:foo xmlns:x="urn:foo"> + <title>Extension Title</title> + </x:foo> + <title>Item Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/508.0.php b/simplepie/test/first_item_title/SPtests/bugs/508.0.php new file mode 100644 index 0000000000..6d963b324f --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/508.0.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_508_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +' +<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item <!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--> Title</title> + </entry> +</feed> +'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/508.1.php b/simplepie/test/first_item_title/SPtests/bugs/508.1.php new file mode 100644 index 0000000000..a40f411f6e --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/508.1.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_508_Test_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +' +<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item <!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--> Title</title> + </entry> +</feed> +'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/508.2.php b/simplepie/test/first_item_title/SPtests/bugs/508.2.php new file mode 100644 index 0000000000..2785d76cc3 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/508.2.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_508_Test_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +' +<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Itemaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--> Title</title> + </entry> +</feed> +'; + } + + function expected() + { + $this->expected = 'Itemaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/508.3.php b/simplepie/test/first_item_title/SPtests/bugs/508.3.php new file mode 100644 index 0000000000..2ead51e006 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/508.3.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_508_Test_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +' +<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Itemaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--> Title</title> + </entry> +</feed> +'; + } + + function expected() + { + $this->expected = 'Itemaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/564.0.php b/simplepie/test/first_item_title/SPtests/bugs/564.0.php new file mode 100644 index 0000000000..a814c296aa --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/564.0.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_564_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="html"><![CDATA[<blink>A<blink>B</blink>C</blink>]]></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'ABC'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/629.0.php b/simplepie/test/first_item_title/SPtests/bugs/629.0.php new file mode 100644 index 0000000000..82115daf7b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/629.0.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_629_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <x:foo xmlns:x="urn:foo"> + <entry> + <title>Extension title</title> + </entry> + </x:foo> + <entry> + <title>Item title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/629.1.php b/simplepie/test/first_item_title/SPtests/bugs/629.1.php new file mode 100644 index 0000000000..6966e9fb66 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/629.1.php @@ -0,0 +1,26 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_629_Test_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item title</title> + </entry> + <x:foo xmlns:x="urn:foo"> + <entry> + <title>Extension title</title> + </entry> + </x:foo> +</feed>'; + } + + function expected() + { + $this->expected = 'Item title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/666.0.php b/simplepie/test/first_item_title/SPtests/bugs/666.0.php new file mode 100644 index 0000000000..c5d4de1551 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/666.0.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_666_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <channel> + <title>Feed Title</title> + </channel> + <item> + <title>Item Title</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/666.1.php b/simplepie/test/first_item_title/SPtests/bugs/666.1.php new file mode 100644 index 0000000000..5e23fbbaa6 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/666.1.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_666_Test_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <channel> + <title>Feed Title</title> + </channel> + <item> + <title>Item Title</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/828.0.php b/simplepie/test/first_item_title/SPtests/bugs/828.0.php new file mode 100644 index 0000000000..35d36b6730 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/828.0.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_828_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item <!-- Title</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'Item <!-- Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/bugs/968.0.php b/simplepie/test/first_item_title/SPtests/bugs/968.0.php new file mode 100644 index 0000000000..6bed207a7c --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/bugs/968.0.php @@ -0,0 +1,22 @@ +<?php + +class SimplePie_First_Item_Title_Test_Bug_968_Test_0 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = "\xFF\xFE" . chunk_split( +'<?xml version="1.0" encoding="UTF-16LE"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title>Item Title</title> + </entry> +</feed>', 1, "\x00"); + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.1.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.1.php new file mode 100644 index 0000000000..6c70c30131 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_HTML_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="text/html" mode="escaped">This &amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This & this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.2.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.2.php new file mode 100644 index 0000000000..18d99d795a --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_Text_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="text/plain">This &amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.3.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.3.php new file mode 100644 index 0000000000..33ffe3b13d --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/1.3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_XHTML_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="application/xhtml+xml" mode="xml"><div xmlns="http://www.w3.org/1999/xhtml">This &amp; this</div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.1.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.1.php new file mode 100644 index 0000000000..bef4945e1b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_HTML_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="text/html" mode="escaped"><![CDATA[This &amp; this]]></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.2.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.2.php new file mode 100644 index 0000000000..f9da9e9a49 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_Text_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="text/plain"><![CDATA[This &amp; this]]></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.3.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.3.php new file mode 100644 index 0000000000..05801eed16 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/2.3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_XHTML_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="application/xhtml+xml" mode="xml"><div xmlns="http://www.w3.org/1999/xhtml"><![CDATA[This &amp; this]]></div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.1.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.1.php new file mode 100644 index 0000000000..43ff189b8a --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_HTML_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="text/html" mode="escaped">This <![CDATA[&]]>amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.2.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.2.php new file mode 100644 index 0000000000..94fe1afef0 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_Text_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="text/plain">This <![CDATA[&]]>amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.3.php b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.3.php new file mode 100644 index 0000000000..92ee35a906 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/0.3/3.3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_03_Title_XHTML_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed version="0.3" xmlns="http://purl.org/atom/ns#"> + <entry> + <title type="application/xhtml+xml" mode="xml"><div xmlns="http://www.w3.org/1999/xhtml">This <![CDATA[&]]>amp; this</div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.1.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.1.php new file mode 100644 index 0000000000..8ebf20dd5b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_HTML_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="html">This &amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This & this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.2.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.2.php new file mode 100644 index 0000000000..e5634cb285 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_Text_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="text">This &amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.3.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.3.php new file mode 100644 index 0000000000..789c2a580f --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/1.3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_XHTML_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">This &amp; this</div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.1.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.1.php new file mode 100644 index 0000000000..481e29f57b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_HTML_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="html"><![CDATA[This &amp; this]]></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.2.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.2.php new file mode 100644 index 0000000000..4def434a09 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_Text_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="text"><![CDATA[This &amp; this]]></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.3.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.3.php new file mode 100644 index 0000000000..9a6ce970dd --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/2.3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_XHTML_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><![CDATA[This &amp; this]]></div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.1.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.1.php new file mode 100644 index 0000000000..0c3491e277 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_HTML_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="html">This <![CDATA[&]]>amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.2.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.2.php new file mode 100644 index 0000000000..44961c42b4 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_Text_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="text">This <![CDATA[&]]>amp; this</title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.3.php b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.3.php new file mode 100644 index 0000000000..349e456498 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/atom/1.0/3.3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_XHTML_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">This <![CDATA[&]]>amp; this</div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.90/1.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.90/1.php new file mode 100644 index 0000000000..0f34ce7a68 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.90/1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_Title_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <title>This &amp; this</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.90/2.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.90/2.php new file mode 100644 index 0000000000..37ab27f1cb --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.90/2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_Title_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <title><![CDATA[This &amp; this]]></title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.90/3.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.90/3.php new file mode 100644 index 0000000000..cd7d3ff8f6 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.90/3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_Title_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <title>This <![CDATA[&]]>amp; this</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/1.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/1.php new file mode 100644 index 0000000000..8d96de3c97 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/1.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_Title_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <title>This &amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/2.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/2.php new file mode 100644 index 0000000000..be9460b9f7 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/2.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_Title_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <title><![CDATA[This &amp; this]]></title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/3.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/3.php new file mode 100644 index 0000000000..60047dc0d4 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-netscape/3.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_Title_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <title>This <![CDATA[&]]>amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/1.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/1.php new file mode 100644 index 0000000000..c98ba9379a --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/1.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_Title_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <title>This &amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/2.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/2.php new file mode 100644 index 0000000000..62cabfbc63 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/2.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_Title_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <title><![CDATA[This &amp; this]]></title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/3.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/3.php new file mode 100644 index 0000000000..b5a93dbd76 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.91-userland/3.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_Title_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <title>This <![CDATA[&]]>amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.92/1.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.92/1.php new file mode 100644 index 0000000000..8e00ad68ee --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.92/1.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_Title_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <title>This &amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.92/2.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.92/2.php new file mode 100644 index 0000000000..7960a729cc --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.92/2.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_Title_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <title><![CDATA[This &amp; this]]></title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/0.92/3.php b/simplepie/test/first_item_title/SPtests/entities/rss/0.92/3.php new file mode 100644 index 0000000000..4f73082576 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/0.92/3.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_Title_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <title>This <![CDATA[&]]>amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/1.0/1.php b/simplepie/test/first_item_title/SPtests/entities/rss/1.0/1.php new file mode 100644 index 0000000000..5c52070679 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/1.0/1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_Title_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <title>This &amp; this</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/1.0/2.php b/simplepie/test/first_item_title/SPtests/entities/rss/1.0/2.php new file mode 100644 index 0000000000..e8910cf878 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/1.0/2.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_Title_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <title><![CDATA[This &amp; this]]></title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/1.0/3.php b/simplepie/test/first_item_title/SPtests/entities/rss/1.0/3.php new file mode 100644 index 0000000000..e736e29fcf --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/1.0/3.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_Title_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <title>This <![CDATA[&]]>amp; this</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/2.0/1.php b/simplepie/test/first_item_title/SPtests/entities/rss/2.0/1.php new file mode 100644 index 0000000000..9d552daf08 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/2.0/1.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_Title_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <title>This &amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/2.0/2.php b/simplepie/test/first_item_title/SPtests/entities/rss/2.0/2.php new file mode 100644 index 0000000000..a79bd280ab --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/2.0/2.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_Title_2 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <title><![CDATA[This &amp; this]]></title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/entities/rss/2.0/3.php b/simplepie/test/first_item_title/SPtests/entities/rss/2.0/3.php new file mode 100644 index 0000000000..241cd2f89b --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/entities/rss/2.0/3.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_Title_3 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <title>This <![CDATA[&]]>amp; this</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'This &amp;amp; this'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.90/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/rss/0.90/atom/0.3/title.php new file mode 100644 index 0000000000..42a72a3081 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.90/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:title>Item Title</a:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.90/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.90/atom/1.0/title.php new file mode 100644 index 0000000000..544a6e83b6 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.90/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:title>Item Title</a:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.0/title.php new file mode 100644 index 0000000000..f718d06234 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:title>Item Title</dc:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.1/title.php new file mode 100644 index 0000000000..137c5917ef --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.90/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:title>Item Title</dc:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.90/title.php b/simplepie/test/first_item_title/SPtests/rss/0.90/title.php new file mode 100644 index 0000000000..64f2a45b1d --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.90/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_090_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> + <item> + <title>Item Title</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/0.3/title.php new file mode 100644 index 0000000000..39965f00b5 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/0.3/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/1.0/title.php new file mode 100644 index 0000000000..838949ca44 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/atom/1.0/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.0/title.php new file mode 100644 index 0000000000..672bb57ed8 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.0/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.1/title.php new file mode 100644 index 0000000000..dca7ed182f --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/dc/1.1/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/title.php new file mode 100644 index 0000000000..5b07bb81f5 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-netscape/title.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Netscape_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd"> +<rss version="0.91"> + <channel> + <item> + <title>Item Title</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/0.3/title.php new file mode 100644 index 0000000000..30ebf1a283 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/0.3/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/1.0/title.php new file mode 100644 index 0000000000..610cf123aa --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/atom/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.0/title.php new file mode 100644 index 0000000000..4697173a8c --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.1/title.php new file mode 100644 index 0000000000..33e76fa898 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/dc/1.1/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.91-userland/title.php b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/title.php new file mode 100644 index 0000000000..384144ce5f --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.91-userland/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_091_Userland_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.91"> + <channel> + <item> + <title>Item Title</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.92/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/rss/0.92/atom/0.3/title.php new file mode 100644 index 0000000000..1f3850e499 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.92/atom/0.3/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.92/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.92/atom/1.0/title.php new file mode 100644 index 0000000000..1aa2fad6d9 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.92/atom/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.0/title.php new file mode 100644 index 0000000000..b2446210e2 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.1/title.php new file mode 100644 index 0000000000..7e8b18c7b3 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.92/dc/1.1/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/0.92/title.php b/simplepie/test/first_item_title/SPtests/rss/0.92/title.php new file mode 100644 index 0000000000..c6d5ce811e --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/0.92/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_092_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="0.92"> + <channel> + <item> + <title>Item Title</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/1.0/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/rss/1.0/atom/0.3/title.php new file mode 100644 index 0000000000..f23da20349 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/1.0/atom/0.3/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://purl.org/atom/ns#"> + <item> + <a:title>Item Title</a:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/1.0/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/1.0/atom/1.0/title.php new file mode 100644 index 0000000000..98e8898118 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/1.0/atom/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:a="http://www.w3.org/2005/Atom"> + <item> + <a:title>Item Title</a:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.0/title.php new file mode 100644 index 0000000000..b2b0c3b236 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <item> + <dc:title>Item Title</dc:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.1/title.php new file mode 100644 index 0000000000..4ebaa99662 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/1.0/dc/1.1/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <item> + <dc:title>Item Title</dc:title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/1.0/title.php new file mode 100644 index 0000000000..4e20cbfcfb --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/1.0/title.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> + <item> + <title>Item Title</title> + </item> +</rdf:RDF>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/2.0/atom/0.3/title.php b/simplepie/test/first_item_title/SPtests/rss/2.0/atom/0.3/title.php new file mode 100644 index 0000000000..8060ccbcea --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/2.0/atom/0.3/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_Atom_03_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://purl.org/atom/ns#"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/2.0/atom/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/2.0/atom/1.0/title.php new file mode 100644 index 0000000000..162d931591 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/2.0/atom/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_Atom_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:a="http://www.w3.org/2005/Atom"> + <channel> + <item> + <a:title>Item Title</a:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.0/title.php b/simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.0/title.php new file mode 100644 index 0000000000..f2a9bea94c --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_DC_10_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.0/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.1/title.php b/simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.1/title.php new file mode 100644 index 0000000000..c4c920f74c --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/2.0/dc/1.1/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_DC_11_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <item> + <dc:title>Item Title</dc:title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/rss/2.0/title.php b/simplepie/test/first_item_title/SPtests/rss/2.0/title.php new file mode 100644 index 0000000000..5a1c396a92 --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/rss/2.0/title.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_First_Item_Title_Test_RSS_20_Title extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<rss version="2.0"> + <channel> + <item> + <title>Item Title</title> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'Item Title'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/first_item_title/SPtests/xmlbase/1.php b/simplepie/test/first_item_title/SPtests/xmlbase/1.php new file mode 100644 index 0000000000..f84b827aee --- /dev/null +++ b/simplepie/test/first_item_title/SPtests/xmlbase/1.php @@ -0,0 +1,21 @@ +<?php + +class SimplePie_First_Item_Title_Test_Atom_10_Title_xmlbase_1 extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<feed xmlns="http://www.w3.org/2005/Atom"> + <entry> + <title type="xhtml" xml:base="http://example.com/"><div xmlns="http://www.w3.org/1999/xhtml"><p xml:base="/test/"><a href="bleh">Link</a></p></div></title> + </entry> +</feed>'; + } + + function expected() + { + $this->expected = '<p><a href="http://example.com/bleh">Link</a></p>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/functions.php b/simplepie/test/functions.php new file mode 100644 index 0000000000..0d01211ceb --- /dev/null +++ b/simplepie/test/functions.php @@ -0,0 +1,486 @@ +<?php + +require_once 'unit_test/unit_test2.php'; + +class SimplePie_Unit_Test2_Group extends Unit_Test2_Group +{ + function pre() + { + ob_start(); + } + + function post() + { + $output = ob_get_contents(); + + if ($output !== false) + { + ob_end_clean(); + } + + $passed_percentage = floor($this->passes() / $this->total() * 100); + $failed_percentage = ceil($this->fails() / $this->total() * 100); + + echo '<h2 class=' . (($passed_percentage == 100) ? 'pass' : 'fail') . '>' . htmlspecialchars($this->name(), ENT_COMPAT, 'UTF-8') . ': ' . $passed_percentage . "% passed!</h2>\n"; + echo "<p>\n$output\n</p>\n"; + echo '<p>We ran ' . $this->total() . ' tests in ' . round($this->time(), 3) . ' seconds of which ' . $this->passes() . ' passed, and ' . $this->fails() . ' failed.</p>'; + flush(); + } +} + +class SimplePie_Unit_Test2 extends Unit_Test2 +{ + function SimplePie_Unit_Test2() + { + parent::Unit_Test2(); + if (strpos($this->name, 'SimplePie') === 0) + { + $this->name = trim(substr_replace($this->name, '', 0, 9)); + } + } + + function output($title, $class, $content) + { + printf("<span title='%s' class='%s'>%s</span>\n", $title, $class, $content); + } + + function pass() + { + $this->output(htmlspecialchars($this->name(), ENT_COMPAT, 'UTF-8'), 'pass', '✔'); + parent::pass(); + } + + function fail() + { + $this->output(htmlspecialchars($this->name(), ENT_COMPAT, 'UTF-8'), 'fail', '✘'); + parent::fail(); + } + + function result() + { + if ($this->result === $this->expected) + { + $this->pass(); + } + else + { + $this->fail(); + } + } +} + +class SimplePie_Feed_Test extends SimplePie_Unit_Test2 +{ + function feed() + { + $feed = new SimplePie(); + $feed->set_raw_data($this->data); + $feed->enable_cache(false); + $feed->init(); + return $feed; + } +} + +class SimplePie_Feed_Author_Test extends SimplePie_Feed_Test +{ + function author() + { + $feed = $this->feed(); + if ($author = $item->get_author()) + { + return $author; + } + else + { + return false; + } + } +} + +class SimplePie_Feed_Category_Test extends SimplePie_Feed_Test +{ + function category() + { + $feed = $this->feed(); + if ($category = $feed->get_category()) + { + return $category; + } + else + { + return false; + } + } +} + +class SimplePie_First_Item_Test extends SimplePie_Feed_Test +{ + function first_item() + { + $feed = $this->feed(); + if ($item = $feed->get_item(0)) + { + return $item; + } + else + { + return false; + } + } +} + +class SimplePie_First_Item_Author_Test extends SimplePie_First_Item_Test +{ + function author() + { + if ($item = $this->first_item()) + { + if ($author = $item->get_author()) + { + return $author; + } + } + return false; + } +} + +class SimplePie_First_Item_Category_Test extends SimplePie_First_Item_Test +{ + function category() + { + if ($item = $this->first_item()) + { + if ($category = $item->get_category()) + { + return $category; + } + } + return false; + } +} + +class SimplePie_First_Item_Contributor_Test extends SimplePie_First_Item_Test +{ + function contributor() + { + if ($item = $this->first_item()) + { + if ($contributor = $item->get_contributor()) + { + return $contributor; + } + } + return false; + } +} + +class SimplePie_Absolutize_Test extends SimplePie_Unit_Test2 +{ + function test() + { + $this->result = SimplePie_Misc::absolutize_url($this->data['relative'], $this->data['base']); + } +} + +class SimplePie_Date_Test extends SimplePie_Unit_Test2 +{ + function test() + { + $this->result = SimplePie_Misc::parse_date($this->data); + } +} + +class SimplePie_Feed_Category_Label_Test extends SimplePie_Feed_Category_Test +{ + function test() + { + if ($category = $this->category()) + { + $this->result = $category->get_label(); + } + } +} + +class SimplePie_Feed_Copyright_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_copyright(); + } +} + +class SimplePie_Feed_Description_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_description(); + } +} + +class SimplePie_Feed_Image_Height_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_image_height(); + } +} + +class SimplePie_Feed_Image_Link_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_image_link(); + } +} + +class SimplePie_Feed_Image_Title_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_image_title(); + } +} + +class SimplePie_Feed_Image_URL_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_image_url(); + } +} + +class SimplePie_Feed_Image_Width_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_image_width(); + } +} + +class SimplePie_Feed_Language_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_language(); + } +} + +class SimplePie_Feed_Link_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_link(); + } +} + +class SimplePie_Feed_Title_Test extends SimplePie_Feed_Test +{ + function test() + { + $feed = $this->feed(); + $this->result = $feed->get_title(); + } +} + +class SimplePie_First_Item_Author_Name_Test extends SimplePie_First_Item_Author_Test +{ + function test() + { + if ($author = $this->author()) + { + $this->result = $author->get_name(); + } + } +} + +class SimplePie_First_Item_Category_Label_Test extends SimplePie_First_Item_Category_Test +{ + function test() + { + if ($category = $this->category()) + { + $this->result = $category->get_label(); + } + } +} + +class SimplePie_First_Item_Content_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_content(); + } + } +} + +class SimplePie_First_Item_Contributor_Name_Test extends SimplePie_First_Item_Contributor_Test +{ + function test() + { + if ($contributor = $this->contributor()) + { + $this->result = $contributor->get_name(); + } + } +} + +class SimplePie_First_Item_Date_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_date('U'); + } + } +} + +class SimplePie_First_Item_Description_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_description(); + } + } +} + +class SimplePie_First_Item_ID_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_id(); + } + } +} + +class SimplePie_First_Item_Latitude_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_latitude(); + } + } +} + +class SimplePie_First_Item_Longitude_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_longitude(); + } + } +} + +class SimplePie_First_Item_Permalink_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_permalink(); + } + } +} + +class SimplePie_First_Item_Title_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + $this->result = $item->get_title(); + } + } +} + +class SimplePie_iTunesRSS_Channel_Block_Test extends SimplePie_First_Item_Test +{ + function test() + { + if ($item = $this->first_item()) + { + if ($enclosure = $item->get_enclosure()) + { + if ($restriction = $enclosure->get_restriction()) + { + return $restriction->get_relationship(); + } + } + } + return false; + } +} + +class diveintomark_Atom_Autodiscovery extends SimplePie_Unit_Test2 +{ + var $data = array('url' => 'http://diveintomark.org/tests/client/autodiscovery/'); + + function data() + { + $this->data['file'] =& new SimplePie_File($this->data['url'], 10, 5, null, SIMPLEPIE_USERAGENT); + $this->name = $this->data['url']; + $this->data['url'] = false; + } + + function expected() + { + $this->expected = $this->data['file']->url; + } + + function test() + { + $feed = new SimplePie(); + $feed->set_file($this->data['file']); + $feed->enable_cache(false); + $feed->init(); + $this->result = $feed->get_link(); + } + + function result() + { + if ($this->data['file']->url != 'http://diveintomark.org/tests/client/autodiscovery/') + { + parent::result(); + } + static $done = array(); + $links = SimplePie_Misc::get_element('link', $this->data['file']->body); + foreach ($links as $link) + { + if (!empty($link['attribs']['href']['data']) && !empty($link['attribs']['rel']['data'])) + { + $rel = array_unique(SimplePie_Misc::space_seperated_tokens(strtolower($link['attribs']['rel']['data']))); + $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->data['file']->url); + if (!in_array($href, $done) && in_array('next', $rel)) + { + $done[] = $this->data['url'] = $href; + break; + } + } + } + if ($this->data['url']) + { + $this->run(); + } + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block.php b/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block.php new file mode 100644 index 0000000000..c5ecd4d135 --- /dev/null +++ b/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_iTunesRSS_Channel_Block_Test_RSS_20 extends SimplePie_iTunesRSS_Channel_Block_Test +{ + function data() + { + $this->data = +'<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"> + <channel> + <itunes:block>yes</itunes:block> + <item> + <enclosure url="http://test.com/test.mp3" /> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'deny'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_default.php b/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_default.php new file mode 100644 index 0000000000..0d840202b5 --- /dev/null +++ b/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_default.php @@ -0,0 +1,23 @@ +<?php + +class SimplePie_iTunesRSS_Channel_Block_Default_Test_RSS_20 extends SimplePie_iTunesRSS_Channel_Block_Test +{ + function data() + { + $this->data = +'<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"> + <channel> + <item> + <enclosure url="http://test.com/test.mp3" /> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'allow'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_reverse.php b/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_reverse.php new file mode 100644 index 0000000000..86d84e72af --- /dev/null +++ b/simplepie/test/itunes_rss/SPtests/rss/2.0/itunes_channel_block_reverse.php @@ -0,0 +1,24 @@ +<?php + +class SimplePie_iTunesRSS_Channel_Block_Reverse_Test_RSS_20 extends SimplePie_iTunesRSS_Channel_Block_Test +{ + function data() + { + $this->data = +'<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"> + <channel> + <itunes:block>no</itunes:block> + <item> + <enclosure url="http://test.com/test.mp3" /> + </item> + </channel> +</rss>'; + } + + function expected() + { + $this->expected = 'allow'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/logo.png b/simplepie/test/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f8af3c3e8d44eb5e15ac2da245878d9d85fd4f0f GIT binary patch literal 4819 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 literal 0 HcmV?d00001 diff --git a/simplepie/test/test.php b/simplepie/test/test.php new file mode 100644 index 0000000000..f9a9f7f321 --- /dev/null +++ b/simplepie/test/test.php @@ -0,0 +1,205 @@ +<?php + +if (version_compare(PHP_VERSION, '5.3', '>=')) +{ + error_reporting(E_ALL ^ E_DEPRECATED ^ E_USER_DEPRECATED); +} +else +{ + error_reporting(E_ALL); +} + +if (version_compare(PHP_VERSION, '5.1', '>=')) +{ + $tz = timezone_identifiers_list(); + date_default_timezone_set($tz[array_rand($tz)]); +} + +header('Content-type: text/html; charset=UTF-8'); + +?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<html lang="en"> +<head> +<title>SimplePie: Unit Tests</title> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> + +<style type="text/css"> +* { + margin: 0; + padding: 0; +} + +body { + font: 12px/18px Verdana, sans-serif; + color: #333; + background: #fff url(background.gif) repeat-x top left; +} + +#site { + width: 500px; + margin: 20px auto; +} + +a { + color: #000; + text-decoration: underline; +} + +a:hover { + color: #fff; + background-color: #333; + text-decoration: none; +} + +h1 { + font-size: 18px; + margin: 30px 0 10px 0; + text-align: center; +} + +h1 + p { + text-align: center; +} + +h2 { + font-size: 16px; + margin: 20px 0 5px 0; + padding-top: 20px; + border-top: 1px solid #ccc; +} + +h2 + p + p, h2 + p + p a { + font-size: 10px; + line-height: 12px; + color: #666; +} + +#summary + p + p { + margin: 20px 0 0 0; + padding-top: 10px; + border-top: 1px solid #ccc; +} + +small { + font-size: 10px; +} + +.pass { + color: green; +} + +.fail { + color: red; +} +</style> + +<script type="text/javascript"> +// Sleight - Alpha transparency PNG's in Internet Explorer 5.5/6.0 +// (c) 2001, Aaron Boodman; http://www.youngpup.net + +if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) { + document.writeln('<style type="text/css">img, input.image { visibility:hidden; } </style>'); + window.attachEvent("onload", fnLoadPngs); +} + +function fnLoadPngs() { + var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, ''); + var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5); + + for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--) { + if (itsAllGood && img.src.match(/\png$/i) != null) { + var src = img.src; + var div = document.createElement("DIV"); + div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')"; + div.style.width = img.width + "px"; + div.style.height = img.height + "px"; + img.replaceNode(div); + } + img.style.visibility = "visible"; + } +} +</script> + +</head> + +<body> + +<div id="site"> + <h1><img src="logo.png" alt="SimplePie Compatibility Test" title="SimplePie Compatibility Test"></h1> + <p><a href="#summary">Skip to the results</a> | + <?php + if (isset($_GET['remote'])) echo '<a href="?">Re-run without remote tests</a>'; + else echo '<a href="?remote=true">Re-run with remote tests</a>'; + ?> + </p> +<?php + +require_once '../simplepie.inc'; +require_once 'functions.php'; + +$tests = array( + 'absolutize', + 'date', + 'feed_category_label', + 'feed_copyright', + 'feed_description', + 'feed_image_height', + 'feed_image_link', + 'feed_image_title', + 'feed_image_url', + 'feed_image_width', + 'feed_language', + 'feed_link', + 'feed_title', + 'first_item_author_name', + 'first_item_category_label', + 'first_item_content', + 'first_item_contributor_name', + 'first_item_date', + 'first_item_description', + 'first_item_id', + 'first_item_latitude', + 'first_item_longitude', + 'first_item_permalink', + 'first_item_title', +); + +$master = new Unit_Test2_Group('SimplePie Test Suite'); + +foreach ($tests as $test) +{ + $test_group = new SimplePie_Unit_Test2_Group(ucwords(str_replace('_', ' ', $test))); + $test_group->load_folder($test); + $master->add($test_group); +} + +$test_group = new SimplePie_Unit_Test2_Group('Who knows a <title> from a hole in the ground?'); +$test_group->load_folder('who_knows_a_title_from_a_hole_in_the_ground'); +$master->add($test_group); + +$test_group = new SimplePie_Unit_Test2_Group('iTunesRSS'); +$test_group->load_folder('itunes_rss'); +$master->add($test_group); + +if (isset($_GET['remote'])) +{ + $test_group = new SimplePie_Unit_Test2_Group('Atom autodiscovery test suite'); + $test_group->add(new diveintomark_Atom_Autodiscovery); + $master->add($test_group); +} + +$master->run(); + +$passed_percentage = floor($master->passes() / $master->total() * 100); +$failed_percentage = ceil($master->fails() / $master->total() * 100); + +?> + <h2 id="summary" class=<?php echo ($passed_percentage == 100) ? 'pass' : 'fail'; ?>><?php echo $passed_percentage; ?>% passed!</h2> + <?php echo '<p>We ran ' . $master->total() . ' tests in ' . round($master->time(), 3) . ' seconds (' . round($master->time() / $master->total(), 3) . ' seconds per test) of which ' . $master->passes() . ' (' . $passed_percentage . '%) passed, and ' . $master->fails() . ' (' . $failed_percentage . '%) failed.</p>'; ?> + + <p><small>Powered by <a href="<?php echo SIMPLEPIE_URL; ?>"><?php echo SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . ', Build ' . SIMPLEPIE_BUILD; ?></a>. SimplePie is © 2004–<?php echo date('Y'); ?>, Ryan Parman and Geoffrey Sneddon, and licensed under the <a href="http://www.opensource.org/licenses/bsd-license.php">BSD License</a>.</small></p> + +</div> + +</body> +</html> diff --git a/simplepie/test/unit_test/unit_test.php b/simplepie/test/unit_test/unit_test.php new file mode 100644 index 0000000000..0a27a34337 --- /dev/null +++ b/simplepie/test/unit_test/unit_test.php @@ -0,0 +1,126 @@ +<?php + +/** + * @package Unit Test + * @author Geoffrey Sneddon <geoffers@gmail.com> + * @version $Id: unit_test.php 6 2007-04-23 15:15:40Z gsnedders $ + * @license http://www.opensource.org/licenses/zlib-license.php zlib/libpng license + * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License + * @copyright Copyright © 2007, Geoffrey Sneddon + */ + +class Unit_Test +{ + var $passed; + var $failed; + var $success_callback; + var $fail_callback; + + function Unit_Test($success, $fail) + { + $this->success_callback = $success; + $this->fail_callback = $fail; + } + + function do_test($callback, $dir, $vars = 'data') + { + $files = $this->get_files($dir); + foreach ($files as $file) + { + $istest = true; + $debug = false; + include $file; + if ($istest) + { + $args = compact($vars); + $result = call_user_func_array($callback, $args); + $this->run_test($file, $result === $expected); + if ($debug) + { + var_dump($file, $args, $result, $expected); + } + } + } + } + + function run_test($file, $success) + { + if ($success) + { + $this->passed++; + call_user_func($this->success_callback, $file); + } + else + { + $this->failed++; + call_user_func($this->fail_callback, $file); + } + } + + function passed() + { + return $this->passed; + } + + function failed() + { + return $this->failed; + } + + function total() + { + return $this->passed + $this->failed; + } + + function get_files($dir) + { + static $extension = null; + if (!$extension) + { + $extension = pathinfo(__FILE__, PATHINFO_EXTENSION); + } + $files = array(); + if ($dh = opendir($dir)) + { + while (($file = readdir($dh)) !== false) + { + if (substr($file, 0, 1) != '.') + { + $files[] = "$dir/$file"; + } + } + closedir($dh); + usort($files, array(&$this, 'sort_files')); + foreach ($files as $file) + { + if (is_dir($file)) + { + array_splice($files, array_search($file, $files), 0, $this->get_files($file)); + } + if (pathinfo($file, PATHINFO_EXTENSION) != $extension) + { + unset($files[array_search($file, $files)]); + } + } + } + return $files; + } + + function sort_files(&$a, &$b) + { + if (is_dir($a) && is_dir($b) || !(is_dir($a) || is_dir($b))) + { + return strnatcasecmp($a, $b); + } + else if (is_dir($a)) + { + return 1; + } + else if (is_dir($b)) + { + return -1; + } + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/unit_test/unit_test2.php b/simplepie/test/unit_test/unit_test2.php new file mode 100644 index 0000000000..63f9ef2579 --- /dev/null +++ b/simplepie/test/unit_test/unit_test2.php @@ -0,0 +1,630 @@ +<?php + +/** + * @package Unit Test + * @author Geoffrey Sneddon <geoffers@gmail.com> + * @version $Id: unit_test2.php 16 2007-08-08 14:52:36Z gsnedders $ + * @license http://www.opensource.org/licenses/zlib-license.php zlib/libpng license + * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License + * @copyright Copyright © 2007, Geoffrey Sneddon + */ + +/** + * Unit Test + * + * @abstract + * @package Unit Test + */ +class Unit_Test2 +{ + /** + * Sets whether this class is a unit test or not + * + * @access protected + * @var bool + */ + var $test = true; + + /** + * Test name + * + * @access protected + * @var mixed + */ + var $name; + + /** + * Test data + * + * @access protected + * @var mixed + */ + var $data; + + /** + * Expected result + * + * @access protected + * @var mixed + */ + var $expected; + + /** + * Test result + * + * @access protected + * @var mixed + */ + var $result; + + /** + * Number of tests passed + * + * @access protected + * @var int + */ + var $passes = 0; + + /** + * Number of tests failed + * + * @access protected + * @var int + */ + var $fails = 0; + + /** + * Set the test name to the class name by default, replacing "_" with " " + */ + function Unit_Test2() + { + $this->name = str_replace('_', ' ', get_class($this)); + } + + /** + * Whether this class is a test + * + * @final + * @access public + * @return bool + */ + function is_test() + { + return (bool) $this->test; + } + + /** + * Test name + * + * @final + * @access public + * @return mixed + */ + function name() + { + return $this->name; + } + + /** + * Number of tests passed + * + * @final + * @access public + * @return int + */ + function passes() + { + return (int) $this->passes; + } + + /** + * Number of tests failed + * + * @final + * @access public + * @return int + */ + function fails() + { + return (int) $this->fails; + } + + /** + * Total number of tests + * + * @final + * @access public + * @return int + */ + function total() + { + return $this->passes() + $this->fails(); + } + + /** + * Run the test + * + * @final + * @access public + */ + function run() + { + $this->init(); + $this->data(); + $this->expected(); + $this->test(); + $this->result(); + } + + /** + * First method called when running the test + * + * This isn't defined as abstract as it's optional + * + * @access protected + */ + function init() + { + } + + /** + * Set Unit_Test2::$data + * + * @abstract + * @access protected + * @see Unit_Test2::$data + */ + function data() + { + } + + /** + * Set Unit_Test2::$expected + * + * @abstract + * @access protected + * @see Unit_Test2::$expected + */ + function expected() + { + } + + /** + * Actually run the test (should set Unit_Test::$result) + * + * @abstract + * @access protected + * @see Unit_Test2::$result + */ + function test() + { + } + + /** + * Check whether the result is valid (should call Unit_Test2::pass() or Unit_Test2::fail()) + * + * @abstract + * @access protected + * @see Unit_Test2::$expected + * @see Unit_Test2::$result + */ + function result() + { + } + + /** + * Process a pass + * + * @access protected + */ + function pass() + { + $this->passes++; + } + + /** + * Process a fail + * + * @access protected + */ + function fail() + { + $this->fails++; + } +} + +/** + * Unit Test Group + * + * @package Unit Test + */ +class Unit_Test2_Group +{ + /** + * Unit Test Group Name + * + * @access protected + * @var mixed + */ + var $name; + + /** + * Tests + * + * @access protected + * @var array + */ + var $tests = array(array()); + + /** + * Number of tests passed + * + * @access protected + * @var int + */ + var $passes = 0; + + /** + * Number of tests failed + * + * @access protected + * @var int + */ + var $fails = 0; + + /** + * Time taken to run tests + * + * @access protected + * @var float + */ + var $time = 0.0; + + /** + * Create Unit Test Group + * + * @access public + * @param string $name Unit Test Group Name + */ + function Unit_Test2_Group($name) + { + $this->name = $name; + } + + /** + * Unit Test Group Name + * + * @final + * @access public + * @return mixed + */ + function name() + { + return $this->name; + } + + /** + * Number of tests passed + * + * @final + * @access public + * @return int + */ + function passes() + { + return (int) $this->passes; + } + + /** + * Number of tests failed + * + * @final + * @access public + * @return int + */ + function fails() + { + return (int) $this->fails; + } + + /** + * Total number of tests + * + * @final + * @access public + * @return int + */ + function total() + { + return $this->passes() + $this->fails(); + } + + /** + * Time to run tests + * + * @final + * @access public + * @return float + */ + function time() + { + return (float) $this->time; + } + + /** + * Add a test (a Unit_Test2 child, or a Unit_Test2_Group) + * + * @access public + * @param object $test Test to add + */ + function add($test) + { + $this->tests[$test->name()][] = $test; + } + + /** + * Remove a test + * + * @access public + * @param string $name Test name + */ + function remove($name) + { + unset($this->tests[$name]); + } + + /** + * Load tests in folder + * + * This loads all the Unit_Test2 classes within files with the same + * extension as this file within the specified folder + * + * @access public + * @param string $folder Folder name + */ + function load_folder($folder) + { + static $extension = null; + if (!$extension) + { + $extension = pathinfo(__FILE__, PATHINFO_EXTENSION); + } + $files = Unit_Test2_Files::get_files($folder); + $count_classes = count(get_declared_classes()); + foreach ($files as $file) + { + if (is_file($file) && pathinfo($file, PATHINFO_EXTENSION) === $extension) + { + include $file; + } + } + $classes = array_slice(get_declared_classes(), $count_classes); + foreach ($classes as $class) + { + if ($this->is_subclass_of($class, 'Unit_Test2')) + { + $class = new $class; + if ($class->is_test()) + { + $this->add($class); + } + } + } + } + + /** + * Run the tests + * + * @access public + */ + function run() + { + $this->pre(); + $start_time = $this->microtime(true); + foreach ($this->tests as $tests) + { + foreach ($tests as $test) + { + if ($this->is_a($test, 'Unit_Test2') || $this->is_a($test, 'Unit_Test2_Group')) + { + $test->run(); + $this->passes += $test->passes(); + $this->fails += $test->fails(); + } + } + } + $this->time = $this->microtime(true) - $start_time; + $this->post(); + } + + /** + * Executed before the tests are executed + * + * @abstract + * @access protected + */ + function pre() + { + } + + /** + * Executed after the tests are executed + * + * @abstract + * @access protected + */ + function post() + { + } + + /** + * Re-implementation of PHP 5.0.3's is_subclass_of() + * + * @access public + * @param mixed $object + * @param string $class_name + */ + function is_subclass_of($object, $class_name) + { + if (func_num_args() != 2) + { + trigger_error('Wrong parameter count for SimplePie_Misc::is_subclass_of()', E_USER_WARNING); + } + else + { + if (version_compare(phpversion(), '5.0.3', '>=') || is_object($object)) + { + return is_subclass_of($object, $class_name); + } + else if (is_string($object) && is_string($class_name)) + { + if (class_exists($object)) + { + if (class_exists($class_name)) + { + $class_name = strtolower($class_name); + while ($object = strtolower(get_parent_class($object))) + { + if ($object == $class_name) + { + return true; + } + } + } + } + else + { + trigger_error('Unknown class passed as parameter', E_USER_WARNNG); + } + } + return false; + } + } + + /** + * Re-implementation of PHP 4.2.0's is_a() + * + * @access public + * @param object $object The tested object + * @param string $class_name The class name + * @return bool Returns true if the object is of this class or has this class as one of its parents, false otherwise + */ + function is_a($object, $class_name) + { + if (function_exists('is_a')) + { + return is_a($object, $class_name); + } + elseif (!is_object($object)) + { + return false; + } + elseif (get_class($object) == strtolower($class_name)) + { + return true; + } + else + { + return is_subclass_of($object, $class_name); + } + } + + /** + * Re-implementation of PHP 5's microtime() + * + * @access public + * @param bool $get_as_float + */ + function microtime($get_as_float = false) + { + if ($get_as_float) + { + if (is_float($time = microtime(true))) + { + return $time; + } + else + { + list($user, $sec) = explode(' ', $time); + return ((float) $user + (float) $sec); + } + } + else + { + // PHP6 will likely return a float by default, so explicitly pass false (this is just ignored under PHP < 5) + return microtime(false); + } + } +} + +/** + * File listing class + * + * @package Unit Test + */ +class Unit_Test2_Files +{ + /** + * Get a list of files/folders within $dir + * + * @static + * @access public + * @param string $dir Folder to get listing for + * @return array + */ + function get_files($dir) + { + $files = array(); + if ($dh = opendir($dir)) + { + while (($file = readdir($dh)) !== false) + { + if (substr($file, 0, 1) != '.') + { + $files[] = "$dir/$file"; + } + } + closedir($dh); + usort($files, array(__CLASS__, 'sort_files')); + foreach ($files as $file) + { + if (is_dir($file)) + { + array_splice($files, array_search($file, $files), 0, Unit_Test2_Files::get_files($file)); + } + } + } + return $files; + } + + /** + * Sort files/folders with files listed before inner folders + * + * @static + * @access public + * @param string $a File/folder 1 + * @param string $b File/folder 2 + * @return int + */ + function sort_files($a, $b) + { + if (is_dir($a) && is_dir($b)) + { + return strnatcmp($a, $b); + } + else if (is_dir($a)) + { + return 1; + } + else if (is_dir($b)) + { + return -1; + } + else + { + return strnatcmp($a, $b); + } + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/cdata.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/cdata.php new file mode 100644 index 0000000000..c04581bba6 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/cdata.php @@ -0,0 +1,38 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_html_cdata extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/html-cdata.atom</id> +<title>Atom item title html cdata</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/html-cdata.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/html-cdata.atom/1</id> + <title type="html"><![CDATA[<title>]]></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="html" title consisting of a less-than +character, the word \'title\' and a greater-than character, where +the character entity reference for the less-than is escaped by being +in a CDATA section.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/entity.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/entity.php new file mode 100644 index 0000000000..8e4074a2a1 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/entity.php @@ -0,0 +1,38 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_html_entity extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/html-entity.atom</id> +<title>Atom item title html entity</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/html-entity.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/html-entity.atom/1</id> + <title type="html">&lt;title></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="html" title consisting of a less-than +character, the word \'title\' and a greater-than character, where the +character entity reference for the less-than character is escaped by +replacing the ampersand with a character entity reference.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/ncr.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/ncr.php new file mode 100644 index 0000000000..546b09dcc9 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/html/ncr.php @@ -0,0 +1,38 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_html_ncr extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/html-ncr.atom</id> +<title>Atom item title html NCR</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/html-ncr.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/html-ncr.atom/1</id> + <title type="html">&lt;title></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="html" title consisting of a less-than +character, the word \'title\' and a greater-than character, where +the HTML\'s character entity reference is escaped by replacing the +ampersand with a numeric character reference.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/cdata.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/cdata.php new file mode 100644 index 0000000000..bc34aae069 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/cdata.php @@ -0,0 +1,38 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_text_cdata extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/text-cdata.atom</id> +<title>Atom item title text in CDATA</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/text-cdata.atom"/> +<entry> + +<id>http://atomtests.philringnalda.com/tests/item/title/text-cdata.atom/1</id> + <title type="text"><![CDATA[<title>]]></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="text" title consisting of a less-than +character, the word \'title\' and a greater-than character, where +the less-than is escaped by being in a CDATA section.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/entity.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/entity.php new file mode 100644 index 0000000000..c332a93156 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/entity.php @@ -0,0 +1,37 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_text_entity extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/text-entity.atom</id> +<title>Atom item title text entity</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/text-entity.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/text-entity.atom/1</id> + <title type="text"><title></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="text" title consisting of a less-than +character, the word \'title\' and a greater-than character, where the +less-than is escaped with its character entity reference.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/ncr.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/ncr.php new file mode 100644 index 0000000000..21cb97c7a0 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/text/ncr.php @@ -0,0 +1,37 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_text_ncr extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/text-ncr.atom</id> +<title>Atom item title text NCR</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/text-ncr.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/text-ncr.atom/1</id> + <title type="text"><title></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="text" title consisting of a less-than +character, the word \'title\' and a greater-than character, where the +less-than character is escaped with a numeric character reference.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/entity.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/entity.php new file mode 100644 index 0000000000..3053705aa3 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/entity.php @@ -0,0 +1,37 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_xhtml_entity extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/xhtml-entity.atom</id> +<title>Atom item title xhtml entity</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/xhtml-entity.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/xhtml-entity.atom/1</id> + <title type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><title></div></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="xhtml" title consisting of a less-than +character, the word \'title\' and a greater-than character, where the +less-than character is escaped with its character entity reference.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file diff --git a/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/ncr.php b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/ncr.php new file mode 100644 index 0000000000..450e7b3a78 --- /dev/null +++ b/simplepie/test/who_knows_a_title_from_a_hole_in_the_ground/xhtml/ncr.php @@ -0,0 +1,37 @@ +<?php + +class who_knows_a_title_from_a_hole_in_the_ground_xhtml_ncr extends SimplePie_First_Item_Title_Test +{ + function data() + { + $this->data = +'<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> +<id>http://atomtests.philringnalda.com/tests/item/title/xhtml-ncr.atom</id> +<title>Atom item title xhtml ncr</title> +<updated>2005-12-18T00:13:00Z</updated> +<author> + <name>Phil Ringnalda</name> + <uri>http://weblog.philringnalda.com/</uri> +</author> +<link rel="self" href="http://atomtests.philringnalda.com/tests/item/title/xhtml-ncr.atom"/> +<entry> + <id>http://atomtests.philringnalda.com/tests/item/title/xhtml-ncr.atom/1</id> + <title type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><title></div></title> + <updated>2005-12-18T00:13:00Z</updated> + <summary>An item with a type="xhtml" title consisting of a less-than +character, the word \'title\' and a greater-than character, where +the less-than character is escaped with its numeric character reference.</summary> + <link href="http://atomtests.philringnalda.com/alt/title-title.html"/> + <category term="item title"/> +</entry> +</feed>'; + } + + function expected() + { + $this->expected = '<title>'; + } +} + +?> \ No newline at end of file