a:6:{i:0;s:26691:"				<div class="h1"><h1>18 Nights & 19 Days Grand Usa Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.justravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.justravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>18 Nights & 19 Days Grand Usa Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						18 Nights / 19 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Washington, Ontario, Las Vegas, Orlando, San Francisco</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.justravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="18 Nights & 19 Days Grand Usa Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="183542"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/436011/280379.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/436011/280379.jpg"  width="150" height="106"    alt="18 Nights & 19 Days Grand Usa Tour" title="18 Nights & 19 Days Grand Usa Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Highlights<br />
<br />
Your Tour at A Glance<br />
Washington D.C. – 1 Night<br />
- Professionally Guided City tour of Washington D.C.<br />
- Visit Smithsonian Air & Space Museum in Washington D.C.<br />
- Visit Hershey’s Chocolate World.<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Washington
								</p>
								<p class="aj">Welcome to the United States of America. Your Tour Starts with a Visit to the Capital of Usa – Washington D.c.<br />
today, You Will Fly to the Capital of - United States of America. On Arrival At Washington D.c. Airport, You Will Be Received and Transferred to a Conveniently Located Hotel Along with the Group. the Rest of the Day is Free for You to Experience the Pulse of this Amazing City On Your Own. Later in the Evening, Enjoy a Delicious Indian Dinner. <br />
overnight in Washington D.c.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> New York
								</p>
								<p class="aj">City Tour of Washington D.c. with a Local Guide. Visit Smithsonian Air & Space Museum. En Route Stop At Hershey’s Chocolate World. Onto Big Apple - New York.<br />
after An American Breakfast , Enjoy An Informative Tour of this Historic and Beautiful City with Your Local Guide. See the Capitol – the U.s. Congress Building, the White House – the Official Residence of the President of the United States, the Lincoln Memorial – the Steps Where Martin Luther King Jr. Gave His Famous Speech, Korean Memorial – Dedicated to the Korean War Where India Had Been a Member of the U.n. Army, Martin Luther King Jr.memorial – the Full Size Statue and His Famous Quotes. Proceed to the Smithsonian Institution - the World’s Largest Museum Complex, Which Includes the National Air and Space Museum. Touch the Piece of Moon Rock, See the Actual Cockpit of the Airbus and You May also Buy the Special Pen Used By Astronauts. After Lunch Sit Back in the Coach as We Drive to New York. En Route Visit Hershey’s Chocolate World. Go Back to Your Childhood Days Where You Sit in a Trolley and Learn About the Different Chocolate Making Processes. Later in the Evening, Enjoy a Delicious Indian Dinner. <br />
overnight in New York.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> New York
								</p>
								<p class="aj">Photo Stop At Iconic Statue of Liberty. Professionally Guided City Tour of Manhattan Including Visit to 86th Floor Observatory of Empire State Building.<br />
after An American Breakfast At Your Hotel, Get Set as You Board Your Boat Cruise to the Scenic Liberty Island for a Close Up View of “the Statue of Liberty”. the Copper Coated Statue Welcomes You to the New World of Democracy, Freedom & Friendliness. Later, Proceed On a City Tour with a Professional Guide of the ‘big Apple’ Over Looking the Brooklyn and Manhattan Bridges, the Headquarter of United Nations Overlooking the East River, Trump Towers – the Most Expensive Residential Building in United States, China Town – the Third Largest Chinese Establishment in the World Outside China, Central Park – 856 Acres of Greeneries Supplying Oxygen to New York City, Rockefeller Complex – the 19 Building Commercial Complex Connected Underground By a Single Concourse, Broadway – the Theatre and Musical District and the Times Square - the Heart of the Entertainment District. Enjoy Indian Lunch. You Will also Visit the Observatory On the 86th Floor of the Empire State Building to Get a Spectacular View of the New York Skyline. After a Day of Fun, Get Set to Enjoy <br />
a Delicious Indian Dinner. <br />
overnight, in New York.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Niagara
								</p>
								<p class="aj">Onto Niagara Falls! Drive Through the United States Freeway Passing By the New York Countryside. Niagara By Night Illumination Tour.<br />
Start Your Day with a Delicious American Breakfast. Later, Sit Back and Relax in Your Coach as We Drive On a Scenic Road to the Niagara Falls – One of the Natural Wonders of the World. En Route Enjoy Lunch. On Arrival Enjoy a Delicious Indian Dinner. After Dinner, We Take You On a Night Tour of the Niagara Falls Being Illuminated in Rainbow Colours and the Mist Acting as Colourful Skies.<br />
Overnight in Niagara.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Orlando
								</p>
								<p class="aj">Adventure personified ‘Maid of The Mist’ or ‘View Mobile Tram Ride’.. Fly to Orlando. After an American Breakfast, adventure awaits you to enjoy the ‘Maid of The Mist’ which gives you a breath taking view of this majestic waterfall beyond comparison. (Due to weather conditions, this ride operates only from the last week of May. We offer the ‘View MobileTram Ride’ for all tourists visiting the falls prior to the last week of May). Also take a journey 175ft underground by elevator to walk through the ‘Cave of the Winds’ and get drenched under the Bridal Veil Falls. After Lunch, proceed to the airport to board a flight to Orlando. On arrival, check-in to the hotel. Later in the evening enjoy an Indian Dinner.<br />
Overnight in Orlando.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Orlando
								</p>
								<p class="aj">Epcot Centre – Chase for the Futuristic Rides and experience the World Showcase. Visit the 11 most visited countries of the world and plan your future holidays. After an American Breakfast, proceed to visit the popular Walt Disney’s Epcot - the ultimate mix of futuristic technology and entertainment. The Future World defies the laws of time, space and gravity. There are fun filled hands-on activities that will appeal to the junior set, at Innovations, Imagination and Mission Space. Enter the fastest world of auto testing on one of the longest and fastest rides at ‘Test Track’. Take a relaxed walk around the World Showcase representing 11 different countries with their culture, cuisine and entertainment. In the evening, get spellbound with the illumination show with lasers, lights, fireworks and music. Later, enjoy an Indian Dinner.<br />
Overnight in Orlando.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Orlando
								</p>
								<p class="aj">A choice to enjoy either Magic Kingdom Park at Walt Disney World Resort or “NASA”- Kennedy Space. After an American Breakfast, proceed to Magic Kingdom Park - where you will get a chance to look back to your childhood. Here you will experience fun beyond your imagination and also see your Disney favourites. Along with the fun filled rides and shows, dance with the Disney characters in the afternoon Centre parade. Not to miss areas like Adventure land, Fantasy land, Frontier land and the shows like Mickey’s Philharmagic.<br />
OR<br />
<br />
After an American breakfast, proceed to the headquarters of National Aeronautics and Space Administration. Feel the thrill of space exploration on five-storey screens as you “float” right alongside NASA Astronauts. Photograph yourself in the midst of gigantic rockets at the Rocket Garden. Not to miss Space Shuttle Explorer – the simulator ride. Visit the 60-foot-tall Launch Complex, 39 Observation Gantry for a breath taking 360 degree view of the two giant Shuttle Launch Pads while you enjoy the bus tour. Enjoy an Indian Dinner. <br />
Overnight in Orlando.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 8:</b> Cruise
								</p>
								<p class="aj">Board your luxurious cruise liner and stay in Ocean view Staterooms. Set sail for the Bahamas! After an American Breakfast, proceed to the Port to board the luxurious cruise. (Please ensure you have a multiple entry USA visa). On board enjoy Lunch and watch her start sailing away from the port. Relax or indulge yourself in various entertainments, casino and shows. Enjoy your stay in Ocean view Staterooms.You have a choice of a lavish international menu or a vegetarian Indian Dinner, specially arranged for you on board.<br />
Stay on board.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 9:</b> Nassau
								</p>
								<p class="aj">Enjoy entertainment on board. Arrive into Nassau - the capital of the Bahamas. After an American Breakfast, participate in the many fun filled activities and competitions on board. Later arrive in Nassau. After Lunch on board, visit this historic and beautiful island. Either you opt for various shore excursions or simply soak in the sun on the beach. Try visiting Paradise Island and see the gorgeous Atlantis Hotel. Pamper yourself with a choice of a lavish international menu or a vegetarian Indian Dinner, specially arranged for you on board. Stay on board.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 10:</b> Visit Coco Cay or Great Stirrup Cay Islands.
								</p>
								<p class="aj">Day full of beach activities. Visit Coco Cay or Great Stirrup Cay Islands. After Breakfast, either enjoy the luxury on board the cruise or rush for the beach activities while you visit one of the either Coco Cay or Great Stirrup Cay Islands - private beaches of the cruise ship. From snorkelling, water scooters, parasailing to glass - bottomed boat for viewing corals, you will have a wide choice of shore activities on the islands. Enjoy a huge spread of continental Lunch on the beach. This evening enjoy some Broadway style entertainment. A lavish international menu or a vegetarian Indian dinner, specially arranged for you on board. The night on board is still young to tap your toes with the live music as a part of the various entertainments. Indian Dinner, specially arranged for you on board.<br />
Stay on board.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Orlando
									</p>
									<p class="aj">Disembark and proceed to Sea World in Orlando– the place to meet the friendly dolphins, coolest penguins and killer whales. Today disembark and proceed to Sea World, a beautifully landscaped marine park where you can participate in some of the fast paced action rides and witness some of the spectacular aquatic shows. You will encounter the killer whale ‘Shamu’; in all his grandeur during ‘The One Ocean’ show; come face to face with sharks of all shapes and sizes at the Shark Encounter; see the Polar bears at close quarters at the Wild Arctic –and bring home memories of a lifetime! For those seeking thrill, you can ride Manta, the roller coaster and experience the Journey to Atlantis- part water ride and part rollercoaster. Later in the evening enjoy an Indian Dinner. <br />
Overnight in Orlando.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 12:</b> Las Vegas
									</p>
									<p class="aj">Fly to Las Vegas - the amazing gambling capital of the world. Evening is to explore the glamorous hotels of Las Vegas. Illuminated Fremont Street Experience and Bellagio Musical Fountain Show. Sit back and enjoy the luxurious Limousine ride through the dazzling streets. After an American Breakfast get set to fly to Las Vegas - the gambling capital of the world. On arrival, check into your hotel and later enjoy Lunch Rest of the evening is free for you to get dressed up and explore the stunning hotels of Las Vegas and indulge yourself in ultimate luxury. Get an experience of the Fremont Street – the three blocks of streets covered with LED canopy displaying scintillating effects of lights and sounds. Also see the Musical Fountain show at the Bellagio with a brilliant mix of water, light and sound effects. Sit back and enjoy the luxurious Limousine ride with champagne through the dazzling streets.<br />
Enjoy a delicious Indian Dinner.<br />
Overnight in Las Vegas.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 13:</b> Las Vegas
									</p>
									<p class="aj">Experience a visit to the majestic Grand Canyon.<br />
This morning you get set for a once-in-a-lifetime experience to visit the Grand Canyon. You will be surprised by the vastness of this nature‘s creation – Grand Canyon one of the natural wonders of the world -created for thousands of years by the course of river Colorado where the canyon goes as deep as one mile. Later in the evening enjoy an Indian Dinner. <br />
Overnight in Las Vegas.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 14:</b> Las Vegas.
									</p>
									<p class="aj">Day is free to relax or enjoy the best of shopping on the Las Vegas Boulevard – The Strip. Later in the evening enjoy a breath taking night helicopter flight over the Las Vegas Strip and downtown Glitter Gulch.<br />
This morning after an American breakfast, your day is at leisure. Enjoy the day to relax or shop till you drop on the Las Vegas Boulevard – The Strip. Enjoy a sumptuous lunch. Later in the evening after Indian dinner proceed for a mesmerising helicopter ride over ― The Strip‖. Look out for this unforgettable experience when you fly over the best of the hotels and enrich yourself with the gorgeous world. <br />
Overnight in Las Vegas.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 15:</b> Los Angeles.
									</p>
									<p class="aj">Drive to Los Angeles. Later in the evening enjoy a city tour of Los Angeles. After an American Breakfast, proceed to Los Angeles. En route enjoy Lunch. After Lunch we take you on a memorable visit the main streets of Hollywood - ‘Hollywood Boulevard’ where you get the pulse of this city. Take a photo stop at the Dolby Theatre – the venue of “Oscars” and walk along the Hollywood Walk of Fame. Place your hands in the handprints and shoeprints of your favourite celebrities at the Grauman’s Chinese Theatre. Later, proceed for an orientation tour of Sunset Boulevard, Doheny Drive – the place where Marilyn Monroe lived, Beverly Hills – house of the who’s who of Hollywood, Rodeo Drive – the most expensive shopping street in United States. Later in the evening enjoy an Indian Dinner.<br />
Overnight in Los Angeles.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 16:</b> Los Angeles
									</p>
									<p class="aj">Experience Hollywood first hand at the Universal Studio’s - The world of movies, magic and illusions. After an American Breakfast get set to become a part of the Hollywood magic as you visit the Universal Studios which has remained true to its roots of immersing guests in the awe-inspiring world of movie-making magic, providing remarkable access to movie sets on a real working studio lot. Take a memorable Tour on its once celebrated “Glamour Trams” which have now evolved to become the world-famous Studio Tour. It is a hallmark attraction of an authentic movie and television studio motivated into that elusive world by three compelling words: lights, camera, action. 2015 will introduce two spectacular attractions debuting as part of the 50th anniversary. “Springfield” an immersive land surrounding “The Simpsons Ride” and “Fast & Furious —Supercharged,” based on the blockbuster film series, will be introduced as the grand finale to the celebrated Studio Tour. Enjoy the new Despicable Me Minion Mayhem attraction and Transformers 3D ride, feel the thrills of the world’s scariest 84-ft drop at the Jurassic Park roller coaster, plunge into total darkness as you face fireballs, scarab beetles, and an army of warrior mummies on a psychological thrill ride in ‘Revenge of The Mummy’. Tonight enjoy a delicious Dinner at an Indian restaurant.<br />
Overnight in Los Angeles.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 17:</b> San Francisco
									</p>
									<p class="aj">Onto the Bay city San Francisco. A magnificent Bay Cruise on the San Francisco Bay. Today after a Breakfast proceed to the airport for your flight to San Francisco ‘The Bay City’. Upon arrival, proceed for an Indian Lunch followed by a spectacular cruise on the San Francisco Bay. Sail past the San Francisco skyline, San Francisco Maritime National Park, sail directly under the Golden Gate Bridge, sail around the infamous Island of Alcatraz, the then inescapable prison. Explore Fishermen’s Wharf, one of the oldest areas of the Bay City. <br />
Enjoy an Indian Dinner. Overnight in San Francisco.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 18:</b> San Francisco
									</p>
									<p class="aj">San Francisco City Tour with a Professional Guide and Enjoy the Classic Cable Car Ride. After An American Breakfast, Proceed for a City Tour with a Professional Guide to the Twin Peaks – the Highest Point of San Francisco, Ghirardelli Square Place of the Beginning of the Ghirardelli Chocolates, Park Presidio – Dedicated to the Veterans and Nob Hill – Area for One of the Most Expensive Residential Homes, Castro District, Market Street, Union Square – the Most Happening Place of the City. Later, We See the Lombard Street – the Most Crooked Street in the World with Eight Hairpin Curves Made to Decrease the Gradient of the Road and also Stop for a Photo of the Iconic Golden Gate Bridge –representing One of the World’s Best Engineering Excellence, Drive Through the 1000 Acre Golden Gate Park – the Cradle of Nature and Freshness. After a Sumptuous Indian Lunch, Take a Classic Cable Car Ride, One the World’s Last Manually Operated Cable Car System. Enjoy a Delicious Indian Dinner.<br />
overnight in San Francisco.</p>
									</td>	
									</tr>
									</table>				
									</div>
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 19:</b> Depature
									</p>
									<p class="aj">Holiday Ends Today and Its Time to Fly Back Home. <br />
We Trust Your Holiday Was Safe, Fun-filled and Memorable. We Would Love to Hear from You. Do Share Your Much Valued Suggestions with Us.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																		<li>Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount.
* Retention Amount varies as per the number of days left before your package start date.~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.justravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="18 Nights & 19 Days Grand Usa Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="183542"/>
						</form>
						</div>
						
						";i:1;s:75:"Book 18 Nights & 19 Days Grand Usa Tour - 18 Nights / 19 Days Tour Packages";i:2;s:170:"book 18 nights & 19 days grand usa tour - 18 nights / 19 days tour packages, adventure tour packages, washington, ontario, las vegas, orlando, san francisco tour packages";i:3;s:198:"Just Travel offers 18 Nights & 19 Days Grand Usa Tour - 18 Nights / 19 Days tour package, budget Adventure tour packages for Washington, Ontario, Las Vegas, Orlando, San Francisco at exciting price.";i:4;s:675:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Washington, Ontario, Las Vegas, Orlando, San Francisco"        
		                 },
		      "description": "Highlights

Your Tour at A Glance
Washington D.C. – 1 Night
- Professionally Guided City tour of Washington D.C.
- Visit Smithsonian Air & Space Museum in Washington D.C.
- Visit Hershey’s Chocolate World.",
		      "name": "18 Nights & 19 Days Grand Usa Tour",
		      "telephone": "+91-8878382228"
		    }
		    </script>
			";i:5;N;}