{"id":161,"name":"Error 404 (Not Found)!!1","url":"https://www.google.com/q=easyspider","links":"https://www.google.com/search?q=easyspider","create_time":"7/12/2023, 3:44:48 AM","update_time":"7/12/2023, 3:44:48 AM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"maxViewLength":15,"outputFormat":"xlsx","saveName":"current_time","containJudge":false,"desc":"https://www.google.com/q=easyspider","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.google.com/search?q=easyspider","desc":"要采集的网址列表,多行以\\n分开","type":"text","exampleValue":"https://www.google.com/search?q=easyspider"},{"id":1,"name":"loopTimes_循环_1","nodeId":2,"nodeName":"循环","desc":"循环循环执行的次数(0代表无限循环)","type":"int","exampleValue":0,"value":0}],"outputParameters":[{"id":0,"name":"参数1_文本","desc":"","type":"text","recordASField":1,"exampleValue":"{\"AUI_TNR_V2_180836\":\"C\",\"AUI_ACCORDION_A11Y_ROLE_354025\":\"T1\",\"AUI_PRELOAD_261698\":\"C\",\"AUI_TEMPLATE_WEBLAB_CACHE_333406\":\"C\",\"AUI_72554\":\"C\",\"AUI_KILLSWITCH_CSA_LOGGER_372963\":\"C\",\"AUI_REL_NOREFERRER_NOOPENER_309527\":\"C\",\"AUI_PCI_RISK_BANNER_210084\":\"C\"}typeof uex === 'function' && uex('ld', 'portal-bb', {wb: 1})\n\n\n\n\n!function(){function n(n,t){var r=i(n);return t&&(r=r(\"instance\",t)),r}var r=[],c=0,i=function(t){return function(){var n=c++;return r.push([t,[].slice.call(arguments,0),n,{time:Date.now()}]),i(n)}};n._s=r,this.csa=n}();;\ncsa('Config', {\"ContentInteractionsSummary.FlushInterval\":5000,\"AddMissingPluginsToEnd\":1});\nif (window.csa) {\n csa(\"Config\", {\n 'Application': 'Retail:Prod:www.amazon.com',\n 'Events.Namespace': 'csa',\n 'ObfuscatedMarketplaceId': 'ATVPDKIKX0DER',\n 'Events.SushiEndpoint': 'https://unagi.amazon.com/1/events/com.amazon.csm.csa.prod',\n 'CacheDetection.RequestID': \"K1JQ9VEP43RRWKW775V5\",\n 'CacheDetection.Callback': window.ue && ue.reset,\n 'LCP.elementDedup': 1\n });\n\n csa(\"Events\")(\"setEntity\", {\n page: {requestId: \"K1JQ9VEP43RRWKW775V5\", meaningful: \"interactive\"},\n session: {id: \"134-1570085-9450222\"}\n });\n}\n!function(i){var r,e,o=\"splice\",u=i.csa,f={},c={},a=i.csa._s,s=0,l=0,g=-1,h={},d={},v={},n=Object.keys,p=function(){};function t(n,t){return u(n,t)}function m(n,t){var i=c[n]||{};O(i,t),c[n]=i,l++,S(U,0)}function w(n,t,i){var r=!0;return t=D(t),i&&i.buffered&&(r=(v[n]||[]).every(function(n){return!1!==t(n)})),r?(h[n]||(h[n]=[]),h[n].push(t),function(){!function(n,t){var i=h[n];i&&i[o](i.indexOf(t),1)}(n,t)}):p}function b(n,t){if(t=D(t),n in d)return t(d[n]),p;return w(n,function(n){return t(n),!1})}function E(n,t){if(u(\"Errors\")(\"logError\",n),f.DEBUG)throw t||n}function y(){return Math.abs(4294967295*Math.random()|0).toString(36)}function D(n,t){return function(){try{return n.apply(this,arguments)}catch(n){E(n.message||n,n)}}}function S(n,t){return i.setTimeout(D(n),t)}function U(){for(var n=0;n.Error.5\",errorMessage:n.m||null,attribution:n.attribution||null,logLevel:\"FATAL\",url:null,file:null,line:null,column:null,stack:n.s||[],context:n.cinfo||{},metadata:{}},n.logLevel&&(o.logLevel=\"\"+n.logLevel),u.forEach(function(e){n[e]&&(o.metadata[e]=n[e])}),\"INFO\"===n.logLevel||Object.keys(i).forEach(function(e){\"number\"!=typeof n[i[e]]&&\"string\"!=typeof n[i[e]]||(o[e]=\"\"+n[i[e]])}),o}(e),n)}}}c.register(\"Errors\",{instance:function(e){return new n(e||{})},logError:e(\"jsError\"),logWarn:e(\"jsWarn\")})});csa.plugin(function(o){var r,e,n,t,a,i=\"function\",u=\"willDisappear\",f=\"$app.\",p=\"$document.\",c=\"focus\",s=\"blur\",d=\"active\",l=\"resign\",$=o.global,b=o.exec,m=o.config[\"Transport.AnonymizeRequests\"]||!1,g=o(\"Events\"),h=$.location,v=$.document||{},y=$.P||{},P=(($.performance||{}).navigation||{}).type,w=o.on,k=o.emit,E=v.hidden,T={};h&&v&&(w($,\"beforeunload\",D),w($,\"pagehide\",D),w(v,\"visibilitychange\",R(p,function(){return v.visibilityState||\"unknown\"})),w(v,c,R(p+c)),w(v,s,R(p+s)),y.when&&y.when(\"mash\").execute(function(e){e&&(w(e,\"appPause\",R(f+\"pause\")),w(e,\"appResume\",R(f+\"resume\")),R(f+\"deviceready\")(),$.cordova&&$.cordova.platformId&&R(f+cordova.platformId)(),w(v,d,R(f+d)),w(v,l,R(f+l)))}),e=$.app||{},n=b(function(){k(f+\"willDisappear\"),D()}),a=typeof(t=e[u])==i,e[u]=b(function(){n(),a&&t()}),$.app||($.app=e),\"complete\"===v.readyState?A():w($,\"load\",A),E?S():x(),o.on(\"$app.blur\",S),o.on(\"$app.focus\",x),o.on(\"$document.blur\",S),o.on(\"$document.focus\",x),o.on(\"$document.hidden\",S),o.on(\"$document.visible\",x),o.register(\"SPA\",{newPage:I}),I({transitionType:{0:\"hard\",1:\"refresh\",2:\"back-button\"}[P]||\"unknown\"}));function I(n,e){var t=!!r,a=(e=e||{}).keepPageAttributes;t&&(k(\"$beforePageTransition\"),k(\"$pageTransition\")),t&&!a&&g(\"removeEntity\",\"page\"),r=o.UUID(),a?T.id=r:T={schemaId:\".PageEntity.1\",id:r,url:m?h.href.split(\"?\")[0]:h.href,server:h.hostname,path:h.pathname,referrer:m?v.referrer.split(\"?\")[0]:v.referrer,title:v.title},Object.keys(n||{}).forEach(function(e){T[e]=n[e]}),g(\"setEntity\",{page:T}),k(\"$pageChange\",T,{buffered:1}),t&&k(\"$afterPageTransition\")}function A(){k(\"$load\"),k(\"$ready\"),k(\"$afterload\")}function D(){k(\"$ready\"),k(\"$beforeunload\"),k(\"$unload\"),k(\"$afterunload\")}function S(){E||(k(\"$visible\",!1,{buffered:1}),E=!0)}function x(){E&&(k(\"$visible\",!0,{buffered:1}),E=!1)}function R(n,t){return b(function(){var e=typeof t==i?n+t():n;k(e)})}});csa.plugin(function(c){var e=\"Events\",t=\"UNKNOWN\",s=\"id\",a=\"all\",n=\"messageId\",i=\"timestamp\",u=\"producerId\",o=\"application\",r=\"obfuscatedMarketplaceId\",f=\"entities\",d=\"schemaId\",l=\"version\",p=\"attributes\",v=\"\",g=\"session\",h=c.config,m=(c.global.location||{}).host,y=h[e+\".Namespace\"]||\"csa_other\",I=h.Application||\"Other\"+(m?\":\"+m:\"\"),b=h[\"Transport.AnonymizeRequests\"]||!1,O=c(\"Transport\"),E={},U=function(e,t){Object.keys(e).forEach(t)};function A(n,i,o){U(i,function(e){var t=o===a||(o||{})[e];e in n||(n[e]={version:1,id:i[e][s]||c.UUID()}),N(n[e],i[e],t)})}function N(t,n,i){U(n,function(e){!function(e,t,n){return\"string\"!=typeof t&&e!==l?c.error(\"Attribute is not of type string: \"+e):!0===n||1===n||(e===s||!!~(n||[]).indexOf(e))}(e,n[e],i)||(t[e]=n[e])})}function S(o,e,r){U(e,function(e){var t=o[e];if(t[d]){var n={},i={};n[s]=t[s],n[u]=t[u]||r,n[d]=t[d],n[l]=t[l]++,n[p]=i,k(n),N(i,t,1),w(i),O(\"log\",n)}})}function k(e){e[i]=function(e){return\"number\"==typeof e&&(e=new Date(e).toISOString()),e||c.time(\"ISO\")}(e[i]),e[n]=e[n]||c.UUID(),e[o]=I,e[r]=h.ObfuscatedMarketplaceId||t,e[d]=e[d].replace(v,y)}function w(e){delete e[l],delete e[d],delete e[u]}function D(o){var r={};this.log=function(e,t){var n={},i=(t||{}).ent;return e?\"string\"!=typeof e[d]?c.error(\"A valid schema id is required for the event\"):(k(e),A(n,E,i),A(n,r,i),A(n,e[f]||{},i),U(n,function(e){w(n[e])}),e[u]=o[u],e[f]=n,void O(\"log\",e,t)):c.error(\"The event cannot be undefined\")},this.setEntity=function(e){b&&delete e[g],A(r,e,a),S(r,e,o[u])}}h[\"KillSwitch.\"+e]||c.register(e,{setEntity:function(e){b&&delete e[g],A(E,e,a),S(E,e,\"csa\")},removeEntity:function(e){delete E[e]},instance:function(e){return new D(e)}})});csa.plugin(function(s){var c,g=\"Transport\",l=\"post\",f=\"preflight\",r=\"csa.cajun.\",i=\"store\",a=\"deleteStored\",u=\"sendBeacon\",t=\"__merge\",e=\"messageId\",n=\".FlushInterval\",o=0,d=s.config[g+\".BufferSize\"]||2e3,h=s.config[g+\".RetryDelay\"]||1500,p=s.config[g+\".AnonymizeRequests\"]||!1,v={},y=0,m=[],E=s.global,R=E.document,b=s.timeout,k=E.Object.keys,w=s.config[g+n]||5e3,I=w,O=s.config[g+n+\".BackoffFactor\"]||1,S=s.config[g+n+\".BackoffLimit\"]||3e4,B=0;function T(n){if(864e5.\"+e,V(\"log\",i,{ent:\"all\"}),S[e]=1)}function W(){0===b[c]&&0===b[g]?(H=T,n(\"Events\")(\"setEntity\",{page:{viewport:\"hidden-iframe\"}})):H=$[s]?y:w,K(H)}function j(){K(I),r=0}function k(){var e=o?v:p;M={},S={},a=t=0,o=n.time(),K(e),W()}function q(){var e=$.readyState;\"interactive\"===e&&K(h),\"complete\"===e&&K(P)}e[\"KillSwitch.\"+i]||($&&void 0!==$[s]?(k(),E($,\"visibilitychange\",W,!1),E($,\"readystatechange\",q,!1),E(\"$afterPageTransition\",k),E(\"$timing:loaded\",q),n.once(\"$load\",q)):n.warn(\"Page visibility not supported\"))});csa.plugin(function(c){var s=c.config[\"Interactions.ParentChainLength\"]||35,e=\"click\",r=\"touches\",f=\"timeStamp\",o=\"length\",u=\"pageX\",g=\"pageY\",p=\"pageXOffset\",h=\"pageYOffset\",m=250,v=5,d=200,l=.5,t={capture:!0,passive:!0},X=c.global,Y=c.emit,n=c.on,x=X.Math.abs,a=(X.document||{}).documentElement||{},y={x:0,y:0,t:0,sX:0,sY:0},N={x:0,y:0,t:0,sX:0,sY:0};function b(t){if(t.id)return\"//*[@id='\"+t.id+\"']\";var e=function(t){var e,n=1;for(e=t.previousSibling;e;e=e.previousSibling)e.nodeName===t.nodeName&&(n+=1);return n}(t),n=t.nodeName;return 1!==e&&(n+=\"[\"+e+\"]\"),t.parentNode&&(n=b(t.parentNode)+\"/\"+n),n}function I(t,e,n){var a=c(\"Content\",{target:n}),i={schemaId:\".ContentInteraction.1\",interaction:t,interactionData:e,messageId:c.UUID()};if(n){var r=b(n);r&&(i.attribution=r);var o=function(t){for(var e=t,n=e.tagName,a=!1,i=t?t.href:null,r=0;r').appendTo(flyout.elem());var panelGroup=flyout.getName()+'SubCats';var hideTimeout=null;var sloppyTrigger=createSloppyTrigger($parent);var showParent=function(){if(hideTimeout){clearTimeout(hideTimeout);hideTimeout=null;} if(visible){return;} var height=$('#nav-flyout-shopAll').height(); $parent.css({'height': height});$parent.animate({width:'show'},{duration:200,complete:function(){$parent.css({overflow:'visible'});}});visible=true;};var hideParentNow=function(){$parent.stop().css({overflow:'hidden',display:'none',width:'auto',height:'auto'});panels.hideAll({group:panelGroup});visible=false;if(hideTimeout){clearTimeout(hideTimeout);hideTimeout=null;}};var hideParent=function(){if(!visible){return;} if(hideTimeout){clearTimeout(hideTimeout);hideTimeout=null;} hideTimeout=setTimeout(hideParentNow,10);};flyout.onHide(function(){sloppyTrigger.disable();hideParentNow();this.elem().hide();});var addPanel=function($link,panelKey){var panel=dataPanel({className:'nav-subcat',dataKey:panelKey,groups:[panelGroup],spinner:false,visible:false});if(!flyoutDebug){var mouseout=mouseOutUtility();mouseout.add(flyout.elem());mouseout.action(function(){panel.hide();});mouseout.enable();} var a11y=a11yHandler({link:$link,onEscape:function(){panel.hide();$link.focus();}});var logPanelInteraction=function(promoID,wlTriggers){var logNow=$F.once().on(function(){var panelEvent=$.extend({},event,{id:promoID});if(config.browsePromos&&!!config.browsePromos[promoID]){panelEvent.bp=1;} logEvent(panelEvent);phoneHome.trigger(wlTriggers);});if(panel.isVisible()&&panel.hasInteracted()){logNow();}else{panel.onInteract(logNow);}};panel.onData(function(data){renderPromo(data.promoID,panel.elem());logPanelInteraction(data.promoID,data.wlTriggers);});panel.onShow(function(){var columnCount=$('.nav-column',panel.elem()).length;panel.elem().addClass('nav-colcount-'+columnCount);showParent();var $subCatLinks=$('.nav-subcat-links > a',panel.elem());var length=$subCatLinks.length;if(length>0){var firstElementLeftPos=$subCatLinks.eq(0).offset().left;for(var i=1;i'+ catTitle+'');panel.elem().prepend($subPanelTitle);}} $link.addClass('nav-active');});panel.onHide(function(){$link.removeClass('nav-active');hideParent();a11y.disable();sloppyTrigger.disable();});panel.onShow(function(){a11y.elems($('a, area',panel.elem()));});sloppyTrigger.register($link,panel);if(flyoutDebug){$link.click(function(){if(panel.isVisible()){panel.hide();}else{panel.show();}});} var panelKeyHandler=onKey($link,function(){if(this.isEnter()||this.isSpace()){panel.show();}},'keydown',false);$link.focus(function(){panelKeyHandler.bind();}).blur(function(){panelKeyHandler.unbind();});panel.elem().appendTo($parent);};var hideParentAndResetTrigger=function(){hideParent();sloppyTrigger.disable();};for(var i=0;i\n \nwindow.navmet.push({key:'PreNav',end:+new Date(),begin:window.navmet.tmp});\n\n\n\n\n\n\nSkip to main content\n\nwindow.navmet.tmp=+new Date();\n\n \n \n \n \nwindow.navmet.push({key:'UpNav',end:+new Date(),begin:window.navmet.tmp});\n\n\nwindow.navmet.main=+new Date();\n\n\n\n\n\n \n \n \n \n window.navmet.tmp=+new Date();\n \n \n \n \n .us\n \n \nwindow.navmet.push({key:'Logo',end:+new Date(),begin:window.navmet.tmp});\n \n\n \n \n \n \n \n Deliver to\n \n \n Singapore\n \n \n \n \n \n \n \n\n\n\n\n\n \n \n window.navmet.tmp=+new Date();\n\n \n \n\n \n \n \n \n \n All\n \n \n Select the department you want to search in\n \n All Departments\n Arts & Crafts\n Automotive\n Baby\n Beauty & Personal Care\n Books\n Boys' Fashion\n Computers\n Deals\n Digital Music\n Electronics\n Girls' Fashion\n Health & Household\n Home & Kitchen\n Industrial & Scientific\n Kindle Store\n Luggage\n Men's Fashion\n Movies & TV\n Music, CDs & Vinyl\n Pet Supplies\n Prime Video\n Software\n Sports & Outdoors\n Tools & Home Improvement\n Toys & Games\n Video Games\n Women's Fashion\n \n \n\n \n \n \n \n Search Amazon\n \n \n \n \n \n \n \n \n \n \n \n \n\nwindow.navmet.push({key:'Search',end:+new Date(),begin:window.navmet.tmp});\n \n \n window.navmet.tmp=+new Date();\n \n \n \n \n \n \n \n \n \n \n \n EN\n \n \n \n \n\n \n \n Hello, sign in\n Account & Lists\n \n\n\n \n\n Returns\n & Orders\n\n\n \n \n \n \n 0\n \n \n \n \n \n \n \n Cart\n \n \n \n \n\n \n window.navmet.push({key:'Tools',end:+new Date(),begin:window.navmet.tmp});\n\n \n Sign inNew customer? Start here.Your ListsCreate a List Find a List or RegistryYour AccountAccount Orders Recommendations Browsing History Watchlist Video Purchases & Rentals Kindle Unlimited Content & Devices Subscribe & Save Items Memberships & Subscriptions Music LibrarySign inNew customer? Start here.\n \n \n window.navmet.tmp=+new Date();\n \n \n All\n \n \n\n var hmenu = document.getElementById(\"nav-hamburger-menu\");\n hmenu.setAttribute(\"href\", \"javascript: void(0)\");\n window.navHamburgerMetricLogger = function() {\n if (window.ue && window.ue.count) {\n var metricName = \"Nav:Hmenu:IconClickActionPending\";\n window.ue.count(metricName, (ue.count(metricName) || 0) + 1);\n }\n window.$Nav && $Nav.declare(\"navHMenuIconClicked\",!0);\n window.$Nav && $Nav.declare(\"navHMenuIconClickedNotReadyTimeStamp\", Date.now());\n };\n hmenu.addEventListener(\"click\", window.navHamburgerMetricLogger);\n window.$Nav && $Nav.declare('hamburgerMenuIconAvailableOnLoad', false);\n \nwindow.navmet.push({key:'HamburgerMenuIcon',end:+new Date(),begin:window.navmet.tmp});\n \n \n \n \n \n \n \n window.navmet.tmp=+new Date();\nToday's Deals\n\nCustomer Service\n\nRegistry\n\nGift Cards\n\nSell\n\nDisability Customer Support\nwindow.navmet.push({key:'CrossShop',end:+new Date(),begin:window.navmet.tmp});\n \n \n \n \n window.navmet.tmp=+new Date();\n\n \nwindow.navmet.push({key:'SWM',end:+new Date(),begin:window.navmet.tmp});\n \n \n\n \n\n \n \n window.navmet.tmp=+new Date();\n\n\n \n \n Appstore for Android\n \n \n \n \n \n \n Amazon Coins\n \n \n \n \n \n \n Fire Tablet Apps\n \n \n \n \n \n Fire TV Apps\n \n \n \n \n \n Games\n \n \n \n \n \n Your Apps & Subscriptions\n \n \n \n \n \n Help\n \n \n \n\n\n\nwindow.navmet.push({key:'Subnav',end:+new Date(),begin:window.navmet.tmp});\n \n\n \n(function() {\n var viewportWidth = function() {\n return window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth;\n };\n\n if (typeof uet === 'function') { uet('x1', 'ewc', {wb: 1}); }\n\n window.$Nav && $Nav.declare('config.ewc', (function() {\n var config = {\"enablePersistent\":true,\"viewportWidthForPersistent\":1400,\"isEWCLogging\":1,\"isEWCStateExpanded\":true,\"EWCStateReason\":\"fixed\",\"isSmallScreenEnabled\":true,\"isFreshCustomer\":false,\"errorContent\":{\"html\":\"\"},\"url\":\"/cart/ewc/compact?hostPageType=MASDetailPage&hostSubPageType=null&hostPageRID=K1JQ9VEP43RRWKW775V5&prerender=0&storeName=mobile-apps\",\"cartCount\":0,\"freshCartCount\":0,\"almCartCount\":0,\"primeWardrobeCartCount\":0,\"isCompactViewEnabled\":true,\"isCompactEWCRendered\":true,\"isWiderCompactEWCRendered\":true,\"EWCBrowserCacheKey\":\"EWC_Cache_134-1570085-9450222__USD_en_US\",\"isContentRepainted\":false,\"clearCache\":false,\"loadFromCacheWithDelay\":0,\"delayRenderingTillATF\":false};\n var hasAui = window.P && window.P.AUI_BUILD_DATE;\n var isRTLEnabled = (document.dir === 'rtl');\n config.pinnable = config.pinnable && hasAui;\n config.isMigrationTreatment = true;\n\n config.flyout = (function() {\n var navbelt = document.getElementById('nav-belt');\n var navCart = document.getElementById('nav-cart');\n var ewcFlyout = document.getElementById('nav-flyout-ewc');\n var persistentClassOnBody = 'nav-ewc-persistent-hover nav-ewc-full-height-persistent-hover';\n var flyout = {};\n\n var getDocumentScrollTop = function() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n };\n\n var isWindow = function(obj) {\n return obj != null && obj === obj.window;\n };\n\n var getWindow = function(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n };\n\n var getOffset = function(elem) {\n if (elem.getClientRects && !elem.getClientRects().length) {\n return {top: 0};\n }\n\n var rect = elem.getBoundingClientRect\n ? elem.getBoundingClientRect()\n : {top: 0};\n\n if (rect.width || rect.height) {\n var doc = elem.ownerDocument;\n var win = getWindow(doc);\n return {\n top: rect.top + win.pageYOffset - doc.documentElement.clientTop\n };\n }\n return rect;\n };\n\n flyout.align = function() {\n var newTop = getOffset(navbelt).top - getDocumentScrollTop();\n ewcFlyout.style.top = (newTop > 0 ? newTop + 'px' : 0);\n };\n\n flyout.hide = function() {\n isRTLEnabled\n ? (ewcFlyout.style.left = '')\n : (ewcFlyout.style.right = '');\n };\n\n if(typeof config.isCompactEWCRendered === 'undefined') {\n if (\n (config.isSmallScreenEnabled && viewportWidth() < 1400) ||\n (config.isCompactViewEnabled && viewportWidth() >= 1400)\n ) {\n config.isCompactEWCRendered = true;\n config.isEWCStateExpanded = true;\n config.url = config.url.replace(\"/gp/navcart/sidebar\", \"/cart/ewc/compact\");\n } else {\n config.isCompactEWCRendered = false;\n }\n }\n\n var viewportQualifyForPersistent = function () {\n return (config.isCompactEWCRendered)\n ? true\n : viewportWidth() >= 1400;\n }\n\n flyout.hasQualifiedViewportForPersistent = viewportQualifyForPersistent;\n\n var getEWCRightOffset = function() {\n if (!config.isCompactEWCRendered) {\n return 0;\n }\n\n var $navbelt = document.getElementById('nav-belt');\n if ($navbelt === undefined || $navbelt === null) {\n return 0;\n }\n\n var EWCCompactViewWidth = (config.isWiderCompactEWCRendered && viewportWidth() >= 1280) ? 130 : 100;\n var scrollLeft = (window.pageXOffset !== undefined)\n ? window.pageXOffset\n : (document.documentElement || document.body.parentNode || document.body).scrollLeft;\n var scrollXAxis = Math.abs(scrollLeft);\n var windowWidth = document.documentElement.clientWidth;\n var navbeltWidth = $navbelt.offsetWidth;\n var isPartOfNavbarNotVisible = (navbeltWidth + EWCCompactViewWidth) > windowWidth;\n\n if (isPartOfNavbarNotVisible) {\n return 0 - (navbeltWidth - scrollXAxis - windowWidth + EWCCompactViewWidth);\n } else {\n return 0;\n }\n }\n\n flyout.getEWCRightOffsetCssProperty = function () {\n return getEWCRightOffset() + 'px';\n }\n\n if (config.isCompactEWCRendered) {\n persistentClassOnBody = 'nav-ewc-persistent-hover nav-ewc-compact-view';\n if (config.isWiderCompactEWCRendered) { persistentClassOnBody += ' nav-ewc-wider-compact-view'; }\n }\n\n flyout.show = function() {\n isRTLEnabled\n ? (ewcFlyout.style.left = flyout.getEWCRightOffsetCssProperty())\n : (ewcFlyout.style.right = flyout.getEWCRightOffsetCssProperty());\n };\n\n var isIOSDevice = function() {\n return (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window.MSStream;\n }\n\n var checkForPersistent = function() {\n if (!hasAui) {\n return { result: false, reason: 'noAui' };\n }\n if (!config.enablePersistent) {\n return { result: false, reason: 'config' };\n }\n if (!viewportQualifyForPersistent()) {\n return { result: false, reason: 'viewport' };\n }\n if (isIOSDevice()) {\n return { result: false, reason: 'iOS' };\n }\n if (!config.cartCount > 0) {\n return { result: false, reason: 'emptycart' };\n }\n return { result: true };\n };\n\n flyout.ableToPersist = function() {\n return checkForPersistent().result;\n };\n var persistentClassRegExp = '(?:^|\\\\s)' + persistentClassOnBody + '(?!\\\\S)';\n flyout.applyPageLayoutForPersistent = function() {\n if (!document.documentElement.className.match( new RegExp(persistentClassRegExp) )) {\n document.documentElement.className += ' ' + persistentClassOnBody;\n }\n };\n\n flyout.unapplyPageLayoutForPersistent = function() {\n document.documentElement.className = document.documentElement.className.replace( new RegExp(persistentClassRegExp, 'g'), '');\n };\n\n flyout.persist = function() {\n flyout.applyPageLayoutForPersistent();\n flyout.show();\n if (config.isCompactEWCRendered) {\n flyout.align();\n }\n };\n\n flyout.unpersist = function() {\n flyout.unapplyPageLayoutForPersistent();\n flyout.hide();\n };\n \n var persistentCheck = checkForPersistent();\n \n\n var resizeCallback = function() {\n \n if (flyout.ableToPersist()) {\n flyout.persist();\n }\n else {\n flyout.unpersist();\n }\n };\n\n flyout.bindEvents = function() {\n if (window.addEventListener) {\n window.addEventListener('resize', resizeCallback, false);\n \n if (config.isCompactEWCRendered) {\n window.addEventListener('scroll', flyout.align, false);\n }\n }\n };\n\n flyout.unbindEvents = function() {\n if (window.removeEventListener) {\n window.removeEventListener('resize', resizeCallback, false);\n \n if (config.isCompactEWCRendered) {\n window.removeEventListener('scroll', flyout.align, false);\n }\n }\n };\n \n var ewcDefaultPersistence = function() {\n \n if (persistentCheck.result) {\n flyout.persist();\n if (window.ue && ue.tag) {\n ue.tag('ewc:persist');\n }\n } else {\n if (window.ue && ue.tag) {\n ue.tag('ewc:unpersist');\n if (persistentCheck.reason === 'noAui') {\n ue.tag('ewc:unpersist:noAui');\n }\n if (persistentCheck.reason === 'viewport') {\n ue.tag('ewc:unpersist:viewport');\n }\n if (persistentCheck.reason === 'emptycart') {\n ue.tag('ewc:unpersist:emptycart');\n }\n if (persistentCheck.reason === 'iOS') {\n ue.tag('ewc:unpersist:iOS');\n }\n }\n }\n };\n \n ewcDefaultPersistence();\n \n if (window.ue && ue.tag) {\n if (flyout.hasQualifiedViewportForPersistent()) {\n ue.tag('ewc:bview');\n }\n else {\n ue.tag('ewc:sview');\n }\n }\n flyout.bindEvents();\n flyout.cache = function () {\n const cache = window.sessionStorage;\n const CACHE_KEY = \"EWCBrowserCacheKey\";\n const CACHE_EXPIRY = \"EWCBrowserCacheExpiry\"; \n const CACHE_VALUE = \"EWCBrowserCacheValue\"; \n const isSessionStorageValid = function () {\n return window && cache && cache instanceof Storage;\n };\n const isCachePresent = function (key) {\n return cache.length > 0 && cache.getItem(key);\n }\n const isValidType = function (value) {\n // Prevents accessing empty key-value and internal methods(prototypes) of storage\n // TODO: Log metrics for invalid access;\n return value && value.constructor == String;\n }\n return {\n getCache: function (key) {\n const value = isCachePresent(key);\n return (isValidType(value)) ? value : null;\n },\n setCache: function (key, value) {\n const oldValue = isCachePresent(key);\n const cacheExpiryTime = isCachePresent(CACHE_EXPIRY);\n // Set the expiry when there's no existing cache - to prevent resetting expiry on page navigation\n if (!cacheExpiryTime) {\n var currentTime = new Date();\n cache.setItem(CACHE_EXPIRY, new Date(currentTime.getTime() + 5 * 60000))\n }\n // TODO: Log length of old and new cache values when logMetrics is true\n cache.setItem(key, value);\n },\n updateCacheAndEwcContainer: function (cacheKey, newEwcContent) {\n const $ = $Nav.getNow(\"$\");\n const $currentEwc = $(\"#ewc-content\");\n if (!$currentEwc.length) {\n var $content = $('#nav-flyout-ewc .nav-ewc-content');\n $content.html(newEwcContent);\n this.setCache(CACHE_KEY, cacheKey);\n if (window.ue && window.ue.count) {\n var current = window.ue.count(\"ewc-init-cache\") || 0;\n window.ue.count(\"ewc-init-cache\", current + 1);\n }\n } else {\n var $newEwcContent = $('
');\n var EWC_CONTENT_BODY_SCROLL_SELECTOR = \".ewc-scroller--selected\";\n if (newEwcContent) { // 1. Updates EWC container with new HTML \n const $newEwcHtml = $newEwcContent.html(newEwcContent).find(\"#ewc-content\");\n const offSet = $currentEwc.find(EWC_CONTENT_BODY_SCROLL_SELECTOR).position().top - $currentEwc.find(\".ewc-active-cart--selected\").position().top;\n $currentEwc.html($newEwcHtml.html());\n $currentEwc.find(EWC_CONTENT_BODY_SCROLL_SELECTOR).scrollTop(offSet);\n if (typeof window.uex === 'function') {\n window.uex('ld', 'ewc-reflect-new-state', {wb: 1});\n }\n } else {\n // 2. Fetches cached response and updates it's html with new state on EWC Update\n const cachedEwc = this.getCache(CACHE_VALUE);\n $newEwcContent = $newEwcContent[0];\n $(cachedEwc).map(function (elementIndex, element) {\n $newEwcContent.appendChild((element.id === \"ewc-content\") ? $currentEwc.clone()[0] : element);\n });\n newEwcContent = $newEwcContent.innerHTML;\n if (window.ue && window.ue.count) {\n var current = window.ue.count(\"ewc-update-cache\") || 0;\n window.ue.count(\"ewc-update-cache\", current + 1);\n }\n }\n $newEwcContent.remove();\n }\n this.setCache(CACHE_VALUE, newEwcContent);\n },\n removeCache: function (key) {\n return cache.removeItem(key);\n }\n }\n}\n;\n return flyout;\n }());\n \n \n \nconst CACHE_KEY = \"EWCBrowserCacheKey\";\nconst CACHE_VALUE = \"EWCBrowserCacheValue\"; \nconst CACHE_EXPIRY = \"EWCBrowserCacheExpiry\"; \nvar cache = config.flyout.cache();\n\nconst isCacheValid = function () {\n // Check for page types and tenure of the cache\n const clearCache = config.clearCache;\n const cacheExpiryTime = cache.getCache(CACHE_EXPIRY);\n const isCacheExpired = new Date() > new Date(cacheExpiryTime);\n const cacheKey = config.EWCBrowserCacheKey;\n const oldCacheKey = cache.getCache(CACHE_KEY);\n const isCacheValid = !clearCache && !isCacheExpired && cacheKey == oldCacheKey;\n if (!isCacheValid && window.ue && window.ue.count) {\n var current = window.ue.count(\"ewc-cache-invalidated\") || 0;\n window.ue.count(\"ewc-cache-invalidated\", current + 1);\n }\n return isCacheValid;\n}\nfunction loadFromCache() {\n if (window.uet && typeof window.uet === 'function') {\n window.uet('bb', 'ewc-loaded-from-cache', {wb: 1});\n }\n if (cache) {\n if (isCacheValid()) {\n var content = cache.getCache(CACHE_VALUE);\n if (content) {\n var $ewcContainer = document.getElementById(\"nav-flyout-ewc\").getElementsByClassName(\"nav-ewc-content\")[0];\n var $ewcContent = document.getElementById(\"ewc-content\");\n if ($ewcContainer && !$ewcContent) {\n $ewcContainer.innerHTML = content;\n // Execute scripts from cache\n const ewcJavascript = document.getElementById(\"ewc-content\").parentNode.querySelectorAll(':scope > script');\n ewcJavascript.forEach(function (script) {\n var scriptTag = document.createElement(\"script\");\n scriptTag.innerHTML = script.innerHTML;\n document.body.appendChild(scriptTag);\n });\n if (typeof window.uex === 'function') {\n window.uex('ld', 'ewc-loaded-from-cache', {wb: 1});\n }\n } else if (window.ue && window.ue.count && typeof window.ue.count === 'function') {\n var currentFailure = window.ue.count(\"ewc-slow-cache\") || 0;\n window.ue.count(\"ewc-slow-cache\", currentFailure + 1);\n }\n }\n } else {\n cache.removeCache(CACHE_VALUE);\n cache.removeCache(CACHE_KEY);\n cache.removeCache(CACHE_EXPIRY);\n }\n }\n}\nfunction delayBy(delayTime) {\n if (delayTime) {\n window.setTimeout(function() {\n loadFromCache();\n }, delayTime)\n } else {\n loadFromCache();\n }\n}\nif(config.delayRenderingTillATF) {\n (window.AmazonUIPageJS ? AmazonUIPageJS : P).when('atf').execute(\"EverywhereCartLoadFromCacheOnAtf\", function () {\n delayBy(config.loadFromCacheWithDelay);\n });\n} else {\n delayBy(config.loadFromCacheWithDelay);\n}\n\n return config;\n }()));\n\n if (typeof uet === 'function') {\n uet('x2', 'ewc', {wb: 1});\n }\n\n if (window.ue && ue.tag) {\n ue.tag('ewc');\n ue.tag('ewc:unrec');\n ue.tag('ewc:cartsize:0');\n\n if ( window.P && window.P.AUI_BUILD_DATE ) {\n ue.tag('ewc:aui');\n } else {\n ue.tag('ewc:noAui');\n }\n }\n}());\n\n \n\n \n \n\n\n\n\nwindow.navmet.push({key:'NavBar',end:+new Date(),begin:window.navmet.main});\n\n\n\n if (window.ue_t0) {\n window.navmet.push({key:\"NavMainPaintEnd\",end:+new Date(),begin:window.ue_t0});\n window.navmet.push({key:\"NavFirstPaintEnd\",end:+new Date(),begin:window.ue_t0});\n }\n\n\n\n\n \n\n\n\n\n\nwindow.navmet.MainEnd = new Date();\n\n if (window.ue_t0) {\n window.navmet.push({key:\"NavMainEnd\",end:+new Date(),begin:window.ue_t0});\n }\n\n\n\n\n {\"AUI_ACCORDION_A11Y_ROLE_354025\":\"T1\"}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Easy Spider SolitaireEasy Spider Solitaire\n \n \n \n by Smallthing\n\n\n 4.1 out of 5 stars17 customer ratings\n \n \n Guidance Suggested\n\n\n \n \n \n \n\n\n\n\n \n \n \n \n \n \n \n\n\n\n\n\n \n \n \n\n\n\n\n\n \n\n \n \n \n \n \n\n\n\n\n \n \n \n \n \n\n\n\n \n \n Price:\n \n\n \n \n \n \n Free Download\n \n \n \n \n\n \n \n \n\n \n\n\n \n \n\n \n \n\n\n \n Sold by:Amazon.com Services LLC\n\n \n \n \n \n \n Languages Supported:\n \n English, French, German, Italian, Portuguese, Russian, Spanish\n \n \n\n \n\n \n \n \n \n \n\n\n\n\n \n Get this app\n \n \n Please sign in before purchasing\n (Why?)\n \n\n \n \n \n \n \n \n \n \n\n\n \n Sign in\n \n \n\n\n(function(f) {var _np=(window.P._namespace(\"masrw-sign-in\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n P.when('A').execute(function(A) {\n A.declarative('masrw-sign-in', 'click', function(event) {\n window.location.href= \"/gp/sign-in.html/ref=mas_buy_sign_in?path=%2Fdp%2FB00G36GT5A&useRedirectOnSuccess=1\";\n });\n });\n}));\nLearn how buying works\n\n By placing your order, you agree to our Terms of Use\n \n \n (function(f) {var _np=(window.P._namespace(\"\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n if (typeof uet == 'function') {\n uet('af');\n }\n }));\n \n \n \n\n \n \n \n\n\n\n\n\n \n \n \n Screenshots\n \n \n\n\n\n \n \n \n \n \n 0:000:00This video is not intended for all audiences. What date were you born?JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember123456789101112131415161718192021222324252627282930312023202220212020201920182017201620152014201320122011201020092008200720062005200420032002200120001999199819971996199519941993199219911990198919881987198619851984198319821981198019791978197719761975197419731972197119701969196819671966196519641963196219611960195919581957195619551954195319521951195019491948194719461945194419431942194119401939193819371936193519341933193219311930192919281927192619251924192319221921192019191918191719161915191419131912191119101909190819071906190519041903190219011900SubmitAdobe Flash Player is required to watch this video.Install Flash Player\n \n \n\n \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n P.when('A', 'Airy', 'ready').execute(function(A, Airy) {\n window.$ = A.$;\n window.elements = {};\n window.global = {};\n\n global.hasCalculatedThumbCarousel = false;\n global.hasCalculatedScreenshotCarousel = false;\n\n global.thumbnailScroll = 600; // Max Scroll amount for thumbnails\n global.thumbnailScrollLeftDistance = 0; // Distance left to scroll on the left\n global.thumbnailScrollRightDistance = 0; // Distance left to scroll on the right\n global.thumbnailScrollPoint = 0; // Point to Scroll to on thumbnails - Jquery uses scrollLeft\n\n global.screenshotScroll = 500; //Max scroll amount for screenshots\n global.screenshotScrollLeftDistance = 0; // Distance left to scroll on the left\n global.screenshotScrollRightDistance = 0; // Distance left to scroll on the right\n global.screenshotScrollPoint = 0; // Point to Scroll to on screenshots - Jquery uses scrollLeft\n\n elements.$mainProductImage = $('#js-masrw-main-image');\n elements.$thumbsCarouselContainer = $(\".masrw-screenshot-thumbnail-container .a-carousel-viewport\"); //This is the one that scrolls\n elements.$thumbsCarouselList = $(\".masrw-screenshot-thumbnail-container .a-carousel\");\n elements.$screenshotsCarouselContainer = $(\".masrw-screenshot-container .a-carousel-viewport\"); //This is the one that scrolls\n elements.$screenshotsCarouselList = $(\".masrw-screenshot-container .a-carousel\");\n\n initButtons();\n initVideo();\n });\n\n function initButtons() {\n\n $(\".masrw-screenshot-thumbnail-container\").bind(\"mouseenter\", function() {\n\n if (!global.hasCalculatedThumbCarousel) {\n // Make sure the cards have the right width and margin\n $(\".masrw-thumb-card\").width(\"auto\");\n $(\".masrw-thumb-card:not(:first)\").css(\"margin-left\", \"10px\");\n\n // Update the Carousel List to have the right width\n calculateCarouselWidth(elements.$thumbsCarouselList, \".masrw-thumb-card\");\n\n global.hasCalculatedThumbCarousel = true;\n\n if (elements.$thumbsCarouselList.width() > elements.$thumbsCarouselContainer.width()) {\n $('.masrw-carousel-control.masrw-screenshot-thumbs').show(500);\n }\n }\n });\n\n $(\".masrw-screenshot-container\").bind(\"mouseenter\", function() {\n\n if (!global.hasCalculatedScreenshotCarousel) {\n // Make sure the cards have the right width and margin\n $(\".masrw-screenshot-card\").width(\"auto\");\n $(\".masrw-screenshot-card:not(:first)\").css(\"margin-left\", \"25px\");\n\n // Update the Carousel List to have the right width\n calculateCarouselWidth(elements.$screenshotsCarouselList, \".masrw-screenshot-card\");\n\n global.hasCalculatedScreenshotCarousel = true;\n\n if (elements.$screenshotsCarouselList.width() > elements.$screenshotsCarouselContainer.width()) {\n $('.masrw-carousel-control.masrw-screenshots').show(500);\n global.screenshotScroll = Math.floor(elements.$screenshotsCarouselContainer.width());\n }\n }\n });\n\n $(\".js-masrw-show-screenshots\").bind(\"click\", function(e) {\n e.preventDefault();\n openScreenshotLightbox($(e.target).parentsUntil(\"ol\").index() - $(\".js-masrw-play-video-button\").length);\n\n });\n\n $(\"#masrw-lightbox-screenshot-close\").bind(\"click\", function(e) {\n e.preventDefault();\n closeScreenshotLightbox();\n });\n\n $(\"#masrw-lightbox-screenshots-dark\").bind(\"click\", function() {\n closeScreenshotLightbox();\n });\n\n $(\".js-masrw-play-video-button\").bind(\"click\", function(e) {\n e.preventDefault();\n openVideoLightbox();\n });\n\n $(\"#masrw-lightbox-video-close\").bind(\"click\", function(e) {\n e.preventDefault();\n closeVideoLightbox();\n });\n\n $(\"#masrw-lightbox-dark\").bind(\"click\", function() {\n closeVideoLightbox();\n });\n\n // Code for Scrolling buttons\n // Thumbnails Left Scroll\n $(\"#masrw-screenshot-thumbs-left\").bind(\"click\", function() {\n // Check to see if you can still scroll to the left\n if (elements.$thumbsCarouselContainer.scrollLeft() != 0) {\n // Calculate amount left to scroll to the left\n global.thumbnailScrollLeftDistance = elements.$thumbsCarouselContainer.scrollLeft();\n\n // If amount left to scroll is greater then predefined scroll, then scroll the predefined amount\n // Otherwise scroll what is left to scroll\n if (global.thumbnailScrollLeftDistance > global.thumbnailScroll) {\n global.thumbnailScrollPoint = elements.$thumbsCarouselContainer.scrollLeft() - global.thumbnailScroll;\n }\n else {\n global.thumbnailScrollPoint = 0;\n\n // No more to scroll left\n $(\"#masrw-screenshot-thumbs-left\").removeClass(\"enabled\");\n }\n\n // Animate the Scroll to prevent automatic jumping to location\n elements.$thumbsCarouselContainer.animate({\n scrollLeft : global.thumbnailScrollPoint\n });\n\n // We can scroll to the right\n $(\"#masrw-screenshot-thumbs-right\").addClass(\"enabled\");\n }\n });\n\n // Thumbnails Right Scroll\n $(\"#masrw-screenshot-thumbs-right\").bind(\"click\", function() {\n // Check to see if you can still scroll to the right\n if (elements.$thumbsCarouselContainer.scrollLeft() + elements.$thumbsCarouselContainer.width() < elements.$thumbsCarouselList.width()) {\n // Calculate amount left to scroll to the right\n global.thumbnailScrollRightDistance = elements.$thumbsCarouselList.width() - (elements.$thumbsCarouselContainer.scrollLeft() + elements.$thumbsCarouselContainer.width());\n\n // If amount left to scroll to the right is greater then predefined scroll, then scroll the predefined amount\n // Otherwise scroll what is left to scroll\n if (global.thumbnailScrollRightDistance > global.thumbnailScroll) {\n global.thumbnailScrollPoint = elements.$thumbsCarouselContainer.scrollLeft() + global.thumbnailScroll;\n }\n else {\n global.thumbnailScrollPoint = elements.$thumbsCarouselContainer.scrollLeft() + global.thumbnailScrollRightDistance;\n\n // No more right scrolling\n $(\"#masrw-screenshot-thumbs-right\").removeClass(\"enabled\");\n }\n\n // Animate the Scroll to prevent automatic jumping to location\n elements.$thumbsCarouselContainer.animate({\n scrollLeft : global.thumbnailScrollPoint\n });\n\n // We can scroll to the left\n $(\"#masrw-screenshot-thumbs-left\").addClass(\"enabled\");\n }\n });\n\n // Scroll bar enable/disable scroll buttons accordingly\n elements.$thumbsCarouselContainer.scroll(function() {\n\n if (elements.$thumbsCarouselContainer.scrollLeft() == 0) {\n // Disable the left button\n global.thumbnailScrollPoint = 0;\n // No more to scroll left\n $(\"#masrw-screenshot-thumbs-left\").removeClass(\"enabled\");\n\n }\n else if (elements.$thumbsCarouselContainer.scrollLeft() > 0) {\n // Enable the left button - We can scroll left now\n $(\"#masrw-screenshot-thumbs-left\").addClass(\"enabled\");\n\n // Calculate amount left to scroll to the right\n global.thumbnailScrollRightDistance = elements.$thumbsCarouselList.width() - (elements.$thumbsCarouselContainer.scrollLeft() + elements.$thumbsCarouselContainer.width());\n\n if (global.thumbnailScrollRightDistance < 2) {\n // No more right scrolling\n $(\"#masrw-screenshot-thumbs-right\").removeClass(\"enabled\");\n }\n else {\n // Has right scrolling\n $(\"#masrw-screenshot-thumbs-right\").addClass(\"enabled\");\n }\n }\n });\n\n // Scroll bar enable/disable scroll buttons accordingly\n elements.$screenshotsCarouselContainer.scroll(function() {\n\n if (elements.$screenshotsCarouselContainer.scrollLeft() == 0) {\n // Disable the left button\n global.screenshotScrollPoint = 0;\n // No more to scroll left\n $(\"#masrw-screenshots-left\").removeClass(\"enabled\");\n\n }\n else if (elements.$screenshotsCarouselContainer.scrollLeft() > 0) {\n // Enable the left button - We can scroll left now\n $(\"#masrw-screenshots-left\").addClass(\"enabled\");\n\n // Calculate amount left to scroll to the right\n global.screenshotScrollRightDistance = elements.$screenshotsCarouselList.width() - (elements.$screenshotsCarouselContainer.scrollLeft() + elements.$screenshotsCarouselContainer.width());\n\n if (global.screenshotScrollRightDistance < 2) {\n // No more right scrolling\n $(\"#masrw-screenshots-right\").removeClass(\"enabled\");\n }\n else {\n // Has right scrolling\n $(\"#masrw-screenshots-right\").addClass(\"enabled\");\n }\n }\n })\n\n // Screenshots Left Scroll\n $(\"#masrw-screenshots-left\").bind(\"click\", function() {\n // Check to see if you can still scroll to the left\n if (elements.$screenshotsCarouselContainer.scrollLeft() != 0) {\n // Calculate amount left to scroll to the left\n global.screenshotScrollLeftDistance = elements.$screenshotsCarouselContainer.scrollLeft();\n\n // If amount left to scroll is greater then predefined scroll, then scroll the predefined amount\n // Otherwise scroll what is left to scroll\n if (global.screenshotScrollLeftDistance > global.screenshotScroll) {\n global.screenshotScrollPoint = elements.$screenshotsCarouselContainer.scrollLeft() - global.screenshotScroll;\n }\n else {\n global.screenshotScrollPoint = 0;\n\n // No more to scroll left\n $(\"#masrw-screenshots-left\").removeClass(\"enabled\");\n }\n\n // Animate the Scroll to prevent automatic jumping to location\n elements.$screenshotsCarouselContainer.animate({\n scrollLeft : global.screenshotScrollPoint\n }, 800, \"swing\");\n\n // We can scroll to the right\n $(\"#masrw-screenshots-right\").addClass(\"enabled\");\n }\n });\n\n // Screenshots Right Scroll\n $(\"#masrw-screenshots-right\").bind(\"click\", function() {\n // Check to see if you can still scroll to the right\n if (elements.$screenshotsCarouselContainer.scrollLeft() + elements.$screenshotsCarouselContainer.width() < elements.$screenshotsCarouselList.width()) {\n // Calculate amount left to scroll to the right\n global.screenshotScrollRightDistance = elements.$screenshotsCarouselList.width() - (elements.$screenshotsCarouselContainer.scrollLeft() + elements.$screenshotsCarouselContainer.width());\n\n // If amount left to scroll to the right is greater then predefined scroll, then scroll the predefined amount\n // Otherwise scroll what is left to scroll\n if (global.screenshotScrollRightDistance > global.screenshotScroll) {\n global.screenshotScrollPoint = elements.$screenshotsCarouselContainer.scrollLeft() + global.screenshotScroll;\n }\n else {\n global.screenshotScrollPoint = elements.$screenshotsCarouselContainer.scrollLeft() + global.screenshotScrollRightDistance;\n\n // No more right scrolling\n $(\"#masrw-screenshots-right\").removeClass(\"enabled\");\n }\n\n //Animate the Scroll to prevent automatic jumping to location\n elements.$screenshotsCarouselContainer.animate({\n scrollLeft : global.screenshotScrollPoint\n }, 800, \"swing\");\n\n // We can scroll to the left\n $(\"#masrw-screenshots-left\").addClass(\"enabled\");\n }\n });\n }\n\n function initVideo() {\n var mediaCentralVideoURL = \"\";\n var mediaCentralBaseURL = \"https://images-na.ssl-images-amazon.com/images/G/01/\";\n var airyOnMediaCentralBaseURL = mediaCentralBaseURL + \"vap/video/airy2/prod/2.0.989.0/\";\n\n global.airyPlayer = Airy.embed({\n parentId : \"masrw-airy-player-container\",\n // Desktop - Specify multiple urls to support more browsers & devices.\n streamingUrls : [\n mediaCentralVideoURL\n ],\n swfUrl : airyOnMediaCentralBaseURL + \"flash/AiryBasicRenderer._TTW_.swf\"\n });\n }\n\n function resetVideo() {\n try {\n global.airyPlayer.detach();\n }\n catch(err) {\n log(err.message);\n }\n\n global.airyPlayer = {};\n\n setTimeout(function(){\n initVideo();\n }, 100);\n }\n\n function stopVideo() {\n global.airyPlayer.pause();\n global.airyPlayer.detach();\n global.airyPlayer = {};\n\n initVideo();\n }\n\n function openVideoLightbox() {\n $(\"#masrw-video-overlay\").removeClass(\"masrw-overlay-hidden\");\n\n global.airyPlayer.play();\n\n setTimeout(function(){\n $(\"#masrw-video-overlay\").addClass(\"masrw-overlay-on\");\n $(\"#masrw-lightbox\").addClass(\"masrw-overlay-on\");\n $(\"#masrw-lightbox-video-close\").addClass(\"masrw-overlay-on\");\n }, 10);\n }\n\n function closeVideoLightbox() {\n try {\n global.airyPlayer.pause();\n }\n catch(err) {\n log(err.message);\n }\n\n $(\"#masrw-video-overlay\").removeClass(\"masrw-overlay-on\");\n $(\"#masrw-lightbox\").removeClass(\"masrw-overlay-on\");\n $(\"#masrw-lightbox-video-close\").removeClass(\"masrw-overlay-on\");\n\n setTimeout(function(){\n $(\"#masrw-video-overlay\").addClass(\"masrw-overlay-hidden\");\n resetVideo();\n }, 150);\n }\n\n function openScreenshotLightbox(defaultIndex) {\n $(\"#masrw-screenshots-overlay\").removeClass(\"masrw-overlay-hidden\");\n\n setTimeout(function(){\n $(\"#masrw-screenshots-overlay\").addClass(\"masrw-overlay-on\");\n $(\"#masrw-screenshots-lightbox\").addClass(\"masrw-overlay-on\");\n $(\"#masrw-screenshots-lightbox\").find(\"li\")[defaultIndex].scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center'\n });\n $(\"#masrw-lightbox-screenshot-close\").addClass(\"masrw-overlay-on\");\n }, 150);\n }\n\n function closeScreenshotLightbox() {\n $(\"#masrw-screenshots-overlay\").removeClass(\"masrw-overlay-on\");\n $(\"#masrw-screenshots-lightbox\").removeClass(\"masrw-overlay-on\");\n $(\"#masrw-lightbox-screenshot-close\").removeClass(\"masrw-overlay-on\");\n\n setTimeout(function(){\n $(\"#masrw-screenshots-overlay\").addClass(\"masrw-overlay-hidden\");\n resetVideo();\n }, 150);\n }\n\n function calculateCarouselWidth(element, elements) {\n var width = 0;\n $(elements).each(function(){\n width += $(this).outerWidth(true);\n });\n\n element.width(width);\n }\n\nLatest updatesWhat's new in version 1.1\n - minor fix- improve performaceProduct DetailsRelease Date: 2013Date first listed on Amazon: October 30, 2013Developed By: SmallthingASIN: B00G36GT5ACustomer reviews: 4.1 out of 5 stars17 customer ratings\n\n\n\n\n\n\n Developer info\n \n \n \n \n \n \n \n \n \n More apps by this developer\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n Product features\n \n \n \n \n \n \n PLAY AT ANY TIME!\n \n \n \n \n \n PLAY EASY\n \n \n \n \n \n A SOLITARIE COMPLETE\n \n \n \n \n \n CUSTOMIZATION\n \n \n \n \n \n RELAX SOUND\n \n \n \n \n \n\n \n\n \n\n\n\n\n\n \n \n Product description\n \n EASY SPIDER Solitaire is the famous solitaire card SPIDER, designed to be simple to use, relaxing, attention to detail... and it is FREE and COMPLETE 100% It's like the famous WINDOWS game that everyone plays! PLAY AT ANY TIME! You're play and must stop? You can close it in anyway : Spider Easy restart exactly where it left! PLAY EASY Drag the cards with your finger on the deck you want, Or tap a card and this will be in the best position ! A SOLITARIE COMPLETE We have not forgotten anything to make the full game and fun for everyone : > You can play with many suit. > You have the chance to come back as you like if you do not like the moves made . > You can ask for help if you do not know how to proceed, you will be given some tips how to proceed. > You have the essential statistics of the whole game if you want to improve yourself : number of moves, time and score . > You can see how you are ranking among players from around the world. > You do not know all the rules to play? You will find them described in detail. IS SUITABLE FOR ANY SCREEN Do you have a phone or a tablet? You can choose the design of the cards, big or small. So that they are clearly visible on your screen. Just a touch while you play. It takes advantage of the graphics of the iPhone 5 and iPad Retina of recent generations. CUSTOMIZATION You can change the design of the game board , the drawings on the cards, remove the writing on the screen ... You can do anything with just one touch. Edit it as you like ! RELAX SOUND We have created a series of relaxing music that will accompany you during the game. If you do not want, then you can also turn off . Search our official page Smallthing and follow us on Facebook and Twitter . You will discover exclusive news, trucch and curiosity about our games ! Visit our website : www.smallthinggame.com Follow also our blog: smallthinggame.blogspot.com If you want to propose improvements , advice write to: info@smallthinggame.com ___________________________________________ Search our other products on store GP RetroBubble Box Breaker Blitz Wall Breaker\n \n \nTechnical detailsSize: 15.3MBVersion: 1.1Developed By: SmallthingApplication Permissions:\n (\n Help me understand what permissions mean\n )\n Access coarse (e.g., Cell-ID, Wi-Fi) locationAccess fine (e.g., GPS) locationAccess information about networksAccess information about Wi-Fi networksOpen network socketsWrite to external storageMinimum Operating System: Android 2.2Approximate Download Time: Less than 2 minutes\n \n \n\n \n\n (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://images-na.ssl-images-amazon.com/images/I/41+hU3deU6L._RC|01JMhqKAiVL.js,11KGVmb0nxL.js,41dL09N-ijL.js,31OqjYy-bxL.js,01VSu9SK-XL.js_.js?AUIClients/DesktopMedleyFilteringMetaAsset&AXTJ5Fo9#386124-T1.666973-T1');\n\n\n \n Customer reviews4.1 out of 5 stars4.1 out of 5\n 17 global ratings\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n \n \n \n 5 star\n \n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n 68%\n \n \n \n \n \n\n \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n \n \n \n 4 star\n \n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n 7%\n \n \n \n \n \n\n \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n \n\n \n \n\n \n \n 3 star\n \n\n \n \n 0% (0%)\n \n\n \n \n\n \n \n \n\n \n \n\n \n \n 0%\n \n \n \n \n\n \n \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n \n \n \n 2 star\n \n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n 17%\n \n \n \n \n \n\n \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n \n\n \n \n \n 1 star\n \n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n 8%\n \n \n \n \n \n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n How customer reviews and ratings work\n \n \n \n Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.\n \n \n To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.\n \n \n Learn more how customers reviews work on Amazon\n \n \n \n \n \n\n \n \n\n\n\nvar instrumentation;!function(){\"use strict\";var e={568:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t};Object.defineProperty(t,\"__esModule\",{value:!0}),t.getSlotWithBrowseNode=t.getPlacementWithBrowseNode=t.getBrowseNode=t.csa=t.csm=t.AD_LOAD_COUNTERS=void 0;var a=r(922);Object.defineProperty(t,\"AD_LOAD_COUNTERS\",{enumerable:!0,get:function(){return a.AD_LOAD_COUNTERS}}),t.csm=i(r(472)),t.csa=i(r(495));var c=r(322);Object.defineProperty(t,\"getBrowseNode\",{enumerable:!0,get:function(){return c.getBrowseNode}}),Object.defineProperty(t,\"getPlacementWithBrowseNode\",{enumerable:!0,get:function(){return c.getPlacementWithBrowseNode}}),Object.defineProperty(t,\"getSlotWithBrowseNode\",{enumerable:!0,get:function(){return c.getSlotWithBrowseNode}})},322:function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.getPlacementWithBrowseNode=t.getSlotWithBrowseNode=t.getBrowseNode=void 0;var r=/.*(\\/b|\\/s|\\/l).*(node=)(\\d{1,12}).*/;t.getBrowseNode=function(){var e=r.exec(window.location.href);return e&&e[3]?e[3]:null},t.getSlotWithBrowseNode=function(e){var r=(0,t.getBrowseNode)();if(!e||!r)return null;var n=e.split(\":\");return n.splice(n.length-1,0,r),n.join(\":\")},t.getPlacementWithBrowseNode=function(e){var r=(0,t.getBrowseNode)();return r?\"\".concat(e,\":\").concat(r):null}},922:function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.AD_LOAD_COUNTERS=void 0,t.AD_LOAD_COUNTERS={HTML_REACHED:\"adload:htmlreached\"}},958:function(e,t,r){Object.defineProperty(t,\"__esModule\",{value:!0}),t.CsaEvents=void 0;var n=r(876);t.CsaEvents=function(){var e=this;if(this.log=function(t,r,o){if(e.events)try{e.events(\"log\",{schemaId:\"ApeSafeframe.csaEvent.1\",metricName:t+\":\"+r+\":\"+o,metricValue:1},{ent:\"all\"})}catch(e){(0,n.logError)(\"Error with 'logCsaEvent' CSA\",e)}},this.setEntity=function(t){if(e.events)try{e.events(\"setEntity\",{adCreativeMetaData:t})}catch(e){(0,n.logError)(\"Error with 'addCsaEntity' CSA\",e)}},window.csa)try{this.events=window.csa(\"Events\",{producerId:\"adplacements\"})}catch(e){(0,n.logError)(\"Error with initiating CSA\",e)}}},710:function(e,t,r){Object.defineProperty(t,\"__esModule\",{value:!0}),t.CsaLatency=void 0;var n=r(876);t.CsaLatency=function(e){var t=this;if(this.mark=function(e,r){if(t.latencyPlugin)try{t.latencyPlugin(\"mark\",e,r)}catch(e){(0,n.logError)(\"Error with 'markCsaLatencyMetric' CSA\",e)}},window.csa)try{this.latencyPlugin=window.csa(\"Content\",{element:e})}catch(e){(0,n.logError)(\"Error with initiating CSA\",e)}}},495:function(e,t,r){Object.defineProperty(t,\"__esModule\",{value:!0}),t.events=t.latency=void 0;var n=r(710),o=r(958);t.latency=function(e){return new n.CsaLatency(e)},t.events=function(){return new o.CsaEvents}},472:function(e,t,r){Object.defineProperty(t,\"__esModule\",{value:!0}),t.addCsmTag=t.sendCsmCounter=t.sendCsmLatencyMetric=void 0;var n,o=r(322);!function(e){e.bb=\"uet\",e.af=\"uet\",e.cf=\"uet\",e.be=\"uet\",e.ld=\"uex\"}(n||(n={})),t.sendCsmLatencyMetric=function(e,t,r,i,a){var c=n[e];if(\"function\"==typeof window[c]){var u=i?i+\":\":\"\",s=function(t,r){r&&window[t](e,\"adplacements:\"+u+r,{wb:1},a)},d=t.replace(/_/g,\":\");s(c,d),s(c,(0,o.getSlotWithBrowseNode)(d)),r&&(s(c,r),s(c,(0,o.getPlacementWithBrowseNode)(r)))}},t.sendCsmCounter=function(e,t,r,n){var i=function(e,t){var n;if(\"function\"==typeof(null===(n=null===window||void 0===window?void 0:window.ue)||void 0===n?void 0:n.count)&&e){var o=\"adplacements:\"+r;window.ue.count(\"\".concat(o,\":\").concat(e),t)}};if(e){var a=e.replace(/_/g,\":\");i(a,n),i((0,o.getSlotWithBrowseNode)(a),n)}t&&(i(t,n),i((0,o.getPlacementWithBrowseNode)(t),n))},t.addCsmTag=function(e,t,r,n){var o;if(null===(o=null===window||void 0===window?void 0:window.ue)||void 0===o?void 0:o.tag){if(t){var i=e+\":\"+t.replace(/_/g,\":\")+(n?\":\"+n:\"\");window.ue.tag(i)}if(r){var a=e+\":\"+r+(n?\":\"+n:\"\");window.ue.tag(a)}t||r||window.ue.tag(e+(n?\":\"+n:\"\"))}}},876:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t};Object.defineProperty(t,\"__esModule\",{value:!0}),t.logError=void 0;var a=i(r(472));t.logError=function(e,t){var r=t||new Error(e);console.error(e,t),a.sendCsmCounter(\"\",null,\"safeFrameError\",1),window.sfHostLogErrors&&(window.ueHostLogError?window.ueHostLogError(r,{logLevel:\"ERROR\",attribution:\"APE-safeframe\",message:e+\" \"}):\"undefined\"!=typeof console&&console.error&&console.error(e,r))}}},t={},r=function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}(568);instrumentation=r}();\nif (instrumentation) {instrumentation.csm.sendCsmCounter(\"Detail_customer-reviews-top_Glance\", \"a5a58631-9157-450d-8b12-21b15ea5926d\", instrumentation.AD_LOAD_COUNTERS.HTML_REACHED, 1);instrumentation.csa.events().log(instrumentation.AD_LOAD_COUNTERS.HTML_REACHED, \"Detail_customer-reviews-top_Glance\", \"a5a58631-9157-450d-8b12-21b15ea5926d\");if (typeof uet === 'function' && typeof ues === 'function') {var scope = 'Detail_customer-reviews-top_Glance';var placementId = 'a5a58631-9157-450d-8b12-21b15ea5926d';ues('wb', 'adplacements:' + scope.replace(/\\_/g, ':'), {wb:1}); uet('bb', 'adplacements:' + scope.replace(/\\_/g, ':'), {wb:1}); if (placementId) {ues('wb', 'adplacements:' + placementId, {wb:1});uet('bb', 'adplacements:' + placementId, {wb:1});}}}window.renderingWeblabs = window.renderingWeblabs ? window.renderingWeblabs : {};window.renderingWeblabs = Object.assign(window.renderingWeblabs, JSON.parse('{\"ADPT_SF_EXPANDABLE_ADS_716745\":\"C\",\"ADPT_SF_ARIA_HIDDEN_644521\":\"T1\",\"ADPT_SF_CLIENT_LATENCY_2023Q1_632539\":\"C\",\"ADPT_SF_MRC_RETEST_643771\":\"T1\",\"ADPT_SF_DOCWRITE_689243\":\"T1\",\"ADPT_SF_TRANSPARENCY_INFO_MANDATORY_FOR_EU_712921\":\"C\"}')); (function(){function a(d,e){if(window.addEventListener){window.addEventListener(d,e,false);}else{if(window.attachEvent){window.attachEvent(\"on\"+d,e);}}}function c(d,e){if(window.removeEventListener){window.removeEventListener(d,e,false);}else{if(window.detachEvent){window.detachEvent(\"on\"+d,e);}}}var b=function(){(function(){(function(j,o){j.sfLogErrors=j.sfLogErrors||true;var r=r||function(w,v){v=v||new Error(w);if(j.ue&&typeof ue.count==\"function\"){ue.count(\"adplacements:safeFrameError\",1);}if(!j.sfLogErrors){return;}if(j.ueLogError){j.ueLogError(v,{logLevel:\"ERROR\",attribution:\"APE-safeframe\",message:w+\" \"});}else{if(typeof console!==\"undefined\"&&console.error){console.error(w,v);}}};j[\"customer-reviews-top\"]={};j[\"customer-reviews-top\"].adStartTime=(new Date()).getTime();function k(){return j.innerHeight||o.documentElement.clientHeight;}function t(){return j.innerWidth||o.documentElement.clientWidth;}function m(x,v,w){if(x>0){return(w>x);}else{return(v>0);}}var d=function(){return(Date.now?Date.now():new Date().getTime());};var h=function(w,y,C){var v,A,D;var B=null;var z=0;if(!C){C={};}var x=function(){z=C.leading===false?0:d();B=null;D=w.apply(v,A);if(!B){v=A=null;}};return function(){var F=d();if(!z&&C.leading===false){z=F;}var E=y-(F-z);v=this;A=arguments;if(E<=0||E>y){if(B){clearTimeout(B);B=null;}z=F;D=w.apply(v,A);if(!B){v=A=null;}}else{if(!B&&C.trailing!==false){B=setTimeout(x,E);}}return D;};};function i(D,B,w,y,v){try{var A=o.getElementById(D).getBoundingClientRect();if(m(A.top,A.bottom,k())&&m(A.left,A.right,t())){if(typeof uet==\"function\"){uet(\"bb\",\"adplacements:viewablelatency:\"+B,{wb:1});if(w){uet(\"bb\",\"adplacements:viewablelatency:\"+w,{wb:1});}}var x;if(j.csa){var C=o.getElementById(D);if(v==\"mobileads\"){x=j.csa(\"Content\",{element:C.parentNode});}else{x=j.csa(\"Content\",{element:C});}x(\"mark\",\"viewablelatency:bodyBegin\");if(j.apeViewableLatencyTrackers[y].loaded){x(\"mark\",\"viewablelatency:loaded\");}}if(typeof uex==\"function\"&&j.ue&&typeof ue.count==\"function\"){if(j.apeViewableLatencyTrackers[y].loaded){uex(\"ld\",\"adplacements:viewablelatency:\"+B,{wb:1});if(w){uex(\"ld\",\"adplacements:viewablelatency:\"+w,{wb:1});}ue.count(\"adplacements:htmlviewed:loaded:\"+B,1);if(w){ue.count(\"adplacements:htmlviewed:loaded:\"+w,1);}}ue.count(\"adplacements:htmlviewed:\"+B,1);if(w){ue.count(\"adplacements:htmlviewed:\"+w,1);}}j.apeViewableLatencyTrackers[y].viewed=true;if(j.apeViewableLatencyTrackers[y].tracker){c(\"scroll\",j.apeViewableLatencyTrackers[y].tracker);c(\"resize\",j.apeViewableLatencyTrackers[y].tracker);}}}catch(z){j.apeViewableLatencyTrackers[y].valid=false;}}try{j.apeViewableLatencyTrackers=j.apeViewableLatencyTrackers||{};var n=\"ape_Detail_customer-reviews-top_Glance_placement\";var f=\"Detail_customer-reviews-top_Glance\".replace(/\\_/g,\":\");var p=\"a5a58631-9157-450d-8b12-21b15ea5926d\";var e=\"d0db2c3f80184e59884aed966d96682f\";var g=\"amazon\";j.apeViewableLatencyTrackers[e]=j.apeViewableLatencyTrackers[e]||{};j.apeViewableLatencyTrackers[e].valid=true;i(n,f,p,e,g);if(j.apeViewableLatencyTrackers[e].valid&&!j.apeViewableLatencyTrackers[e].viewed){j.apeViewableLatencyTrackers[e].tracker=h(function(){i(n,f,p,e,g);},20);a(\"scroll\",j.apeViewableLatencyTrackers[e].tracker);a(\"resize\",j.apeViewableLatencyTrackers[e].tracker);}}catch(q){if(j.apeViewableLatencyTrackers&&j.apeViewableLatencyTrackers.d0db2c3f80184e59884aed966d96682f){j.apeViewableLatencyTrackers.d0db2c3f80184e59884aed966d96682f.valid=false;}r(\"Error initializing viewable latency instrumentation\",q);}if(j.csa){var l;var u=o.getElementById(n);if(g==\"mobileads\"){l=j.csa(\"Content\",{element:u.parentNode});}else{l=j.csa(\"Content\",{element:u});}l(\"mark\",\"bodyBegin\");}try{if(j.DAsf){j.DAsf.loadAds();}else{var s=o.createElement(\"script\");s.type=\"text/javascript\";s.async=true;s.charset=\"utf-8\";s.src=\"https://images-na.ssl-images-amazon.com/images/S/apesafeframe/ape/sf/desktop/DAsf-1.50.d76dcf8e.js?csm_attribution=APE-SafeFrame\";s.onerror=function(v){r(\"Error loading SafeFrame library: https://images-na.ssl-images-amazon.com/images/S/apesafeframe/ape/sf/desktop/DAsf-1.50.d76dcf8e.js?csm_attribution=APE-SafeFrame\");};s.setAttribute(\"crossorigin\",\"anonymous\");(o.getElementsByTagName(\"head\")[0]||o.getElementsByTagName(\"body\")[0]).appendChild(s);}}catch(q){r(\"Error appending DAsf library\",q);}}(window,document));})();};b();})();\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n\n \n Sort reviews by\n \n \n\n \n Top reviews\n \n\n \n Most recent\n \n\n \n Top reviews\n \n \n\n\n\n\n\n\n\n\n\n\n\n Top reviews from the United States\n\n \n\n There was a problem filtering reviews right now. Please try again later.Diane Felice5.0 out of 5 stars\n\n\n\n\n\n\n\n \n \n Fun game!!\n \nReviewed in the United States 🇺🇸 on March 2, 2023Verified Purchase\n\n\n\n\n\n\n\n \n \n This game is really fun, easy enough to learn but always challenging at the same time. The graphics are nice and the gameplay is intuitive.\n \nRead more\n \n \n \n \n Helpful\n \n \n Sending feedback...Thank you for your feedback.Sorry, we failed to record your vote. Please try again\n Report\n Kindle Customer4.0 out of 5 stars\n\n\n\n\n\n\n\n \n \n Four Stars\n \nReviewed in the United States 🇺🇸 on February 9, 2017Verified Purchase\n\n\n\n\n\n\n\n \n \n Enjoy playing\n \nRead more\n \n \n \n \n Helpful\n \n \n Sending feedback...Thank you for your feedback.Sorry, we failed to record your vote. Please try again\n Report\n David Brown5.0 out of 5 stars\n\n\n\n\n\n\n\n \n \n Five Stars\n \nReviewed in the United States 🇺🇸 on November 17, 2014Verified Purchase\n\n\n\n\n\n\n\n \n \n GREAT\n \nRead more\n \n \n \n \n Helpful\n \n \n Sending feedback...Thank you for your feedback.Sorry, we failed to record your vote. Please try again\n Report\n See all reviews\n\n \n \n\n\n\n\n\n \n\n\n\n\n \n \n \n \n Top reviews from other countries\n \n \n \n \n \n \n \n \n Translate all reviews to English\n \n \n \n \n \n \n \n \n \n \n \n \n \nJuan Rivera4.0 out of 5 stars\n\n\n\n\n\n\n\n \n Me gusta\n \n \nReviewed in Spain 🇪🇸 on May 31, 2014Verified Purchase\n\n\n\n\n\n\n\n \n Está bien, me gusta, pero algo lento en la ejecución. Además tienes que cogerle \"el tranquillo\" al unir las cartas, tienes que darle un tic.\n \n \nRead more\n \n Report\n Translate review to EnglishSee all reviews\n \n \n \n\n\n Amazon Appstore Return Policy\n \n \n //Code to replace low resolution image with high resolution image once it is loaded.\n var currentBgImage = document.getElementById(\"atf-dp-bg-img\");\n var highResBgImage = new Image();\n highResBgImage.src = \"https://m.media-amazon.com/images/I/91bVia+AraL._SL500_UX1920_CR0%2C0%2C1920%2C1080_.jpg\";\n highResBgImage.onload = function () {\n currentBgImage.src = highResBgImage.src;\n };\n\n var selectedTwisterElement = document.querySelector('.qsTwister .a-color-price');\n var selectedTwister = selectedTwisterElement ? selectedTwisterElement.id : \"apponly\";\n P.when('A', 'ready').execute(function (A) {\n A.on('a:button-group:quickSubsToggle:toggle', function (data) {\n selectedTwister = data.selectedButton.buttonName;\n $('.twister-price').removeClass(\"a-color-price\");\n $('.qsTwister').find('#' + selectedTwister + '.twister-price').addClass(\"a-color-price\");\n });\n\n // Emit clickstream metrics on page load succeed\n emitMetrics(A, '/hz/mas/detail/pageloaded');\n });\n\n function emitMetrics(A, endpoint) {\n var $ = A.$;\n let dataParams = { 'asin': \"B00G36GT5A\" };\n // Emit clickstream metrics on page load succeed\n let anti_csrf = document.querySelector('meta[name=\"csrf-token\"]') === null ?\n 'faketoken': document.querySelector('meta[name=\"csrf-token\"]')\n .getAttribute('content');\n A.post(endpoint, {\n headers: {\"anti-csrftoken-a2z\": anti_csrf},\n params: dataParams,\n success: function (response) {\n if (response === true) {\n console.log('Client page load success');\n } else {\n console.log('Client page load failed');\n }\n },\n error: function () {\n console.log('Client page load unknown error');\n }\n });\n }\n\n\n\n\n\n\n\n\n\n \n\n\n\n (function ($Nav) {\n\"use strict\";\n\nif (typeof $Nav === 'undefined' || $Nav === null || typeof $Nav.when !== 'function') {\n return;\n}\n\n$Nav.when('$', 'data', 'flyout.yourAccount', 'sidepanel.csYourAccount',\n 'config')\n .run(\"BuyitAgain-YourAccount-SidePanel\",\n function ($, data, yaFlyout, csYourAccount, config) {\n if (config.disableBuyItAgain) {\n return;\n }\n var render = function (data) {\n if (data.dramResult) {\n var widgetHtml = data.dramResult;\n navbar.sidePanel({\n flyoutName: 'yourAccount',\n data: {html: widgetHtml}\n });\n }\n };\n\n var renderBuyItAgain = function (biaData) {\n if (csYourAccount) {\n csYourAccount.register(render, biaData);\n } else {\n render(biaData);\n }\n };\n\n var truncateAndRestructureYaFlyout = function() {\n if (window.P) {\n P.when('A', 'a-truncate').execute(function(A, truncate) {\n var truncateElements = A.$('.a-truncate');\n A.each(truncateElements, function(element) {\n truncate.get(element).update();\n });\n var recommendationsWidget = document.getElementById('bia-hcb-widget');\n if (recommendationsWidget) { \n var navFlyout = recommendationsWidget.parentElement;\n var navFlyoutPaddingBottom = parseInt(window.getComputedStyle(navFlyout).getPropertyValue('padding-bottom'));\n var navFlyoutContentHeight = navFlyout.clientHeight - navFlyoutPaddingBottom;\n while (recommendationsWidget.offsetHeight > navFlyoutContentHeight && recommendationsWidget.offsetHeight > 0){\n var recommendations = recommendationsWidget.querySelectorAll('.biaNavFlyoutFaceout');\n if (recommendations.length <= 1) {\n break;\n }\n var lastRecommendation = recommendations[recommendations.length - 1];\n lastRecommendation.parentElement.removeChild(lastRecommendation);\n }\n }\n });\n }\n };\n\n yaFlyout.sidePanel.onData(truncateAndRestructureYaFlyout);\n yaFlyout.onShow(truncateAndRestructureYaFlyout);\n\n yaFlyout.onRender(function() {\n $.ajax({\n url: '/gp/bia/external/bia-hcb-ajax-handler.html',\n data: {\"biaHcbRid\":\"K1JQ9VEP43RRWKW775V5\"},\n dataType: 'json',\n timeout: 4*1000,\n success: renderBuyItAgain,\n error: function (jqXHR, textStatus, errorThrown) {\n }\n });\n });\n });\n})(window.$Nav);\n\n\n\n window.$Nav && $Nav.when(\"data\").run(function (data) {\n data({\n \"accountListContent\": { \"html\": \"\" },\n \"tooltipContent\": { \"html\": \"\" },\n \"signinContent\": { \"html\": \"\" },\n \"templates\": {\"itemList\":\"<# var hasColumns = (function () { var checkColumns = function (_items) { if (!_items) { return false; } for (var i=0; i<_items.length; i++) { if (_items[i].columnBreak || (_items[i].items && checkColumns(_items[i].items))) { return true; } } return false; }; return checkColumns(items);}()); #><# if(hasColumns) { #> <# if(items[0].image && items[0].image.src) { #>