Snippets Collections
organizationId = "868846676";
	///// Customer Section ////
	customerEmail = data.get("BillEmail_Address").toList().get(0);
	// 		info customerEmail;
	// Search for the contact in Zoho Books by email
	search_params = Map();
	search_params.put("email",customerEmail);
	search_response = zoho.books.getRecords("contacts",organizationId,search_params,"zoho_books");
	// 	info search_response;
	if(search_response.get("code") == 0 && search_response.get("contacts").size() > 0)
	{
		// Contact exists, retrieve the contact ID
		contact_id = search_response.get("contacts").get(0).get("contact_id");
		// 			info "Contact already exists. Contact ID: " + contact_id;
	}
	else
	{
		// Contact doesn't exist, create a new contact
		contactPerson = Map();
		customerName = data.get("CustomerRef_name");
		if(customerName.contains(" "))
		{
			contactPerson.put("first_name",customerName.getPrefix(" "));
			contactPerson.put("last_name",customerName.getSuffix(" "));
		}
		else
		{
			contactPerson.put("last_name",customerName);
		}
		contactPerson.put("email",customerEmail);
		contact_map = Map();
		contact_map.put("contact_name",data.get("CustomerRef_name"));
		contact_map.put("contact_type","customer");
		contact_map.put("contact_persons",contactPerson.toList());
		create_response = zoho.books.createRecord("contacts",organizationId,contact_map,"zoho_books");
		// 		info create_response;
		if(create_response.get("code") == 0)
		{
			// New contact created, retrieve the contact ID
			contact_id = create_response.get("contact").get("contact_id");
			// 				info "New contact created. Contact ID: " + contact_id;
		}
		else
		{
			// Handle error while creating the contact
			// 				info "Error creating contact: " + create_response.get("message");
		}
	}
	/////////////////////////// Customer Section Ends //////////////////////
	//////////////////////////// Item Section ///////////////////////////
	lines = data.get("Line");
	booksLineItems = List();
	for each  line in lines
	{
		if(line.containsKey("Id"))
		{
			amount = line.get("Amount");
			description = line.get("Description");
			SalesItemLineDetail = line.get("SalesItemLineDetail");
			qty = SalesItemLineDetail.get("Qty");
			itemName = SalesItemLineDetail.get("ItemRef").get("name");
			itemQuery = Map();
			itemQuery.put("name",itemName);
			searchItemResp = zoho.books.getRecords("Items",organizationId,itemQuery,"zoho_books");
			// 			info searchItemResp;
			items = searchItemResp.get("items");
			if(items.size() > 0)
			{
				itemId = items.get(0).get("item_id");
			}
			else
			{
				itemMap = Map();
				itemMap.put("name",itemName);
				createItemResp = zoho.books.createRecord("Items",organizationId,itemMap,"zoho_books");
				// 				info createItemResp;
				itemId = createItemResp.get("item").get("item_id");
			}
			lineItemMap = Map();
			lineItemMap.put("item_id",itemId);
			lineItemMap.put("description",description);
			lineItemMap.put("quantity",qty);
			lineItemMap.put("rate",amount);
			booksLineItems.add(lineItemMap);
		}
		else
		{
			if(line.get("DetailType") == "SalesItemLineDetail")
			{
				if(line.get("SalesItemLineDetail").get("ItemRef").get("value") == "SHIPPING_ITEM_ID")
				{
					shippingCharges = line.get("Amount");
				}
			}
		}
	}
	// 	info booksLineItems;
	// 	info shippingCharges;
	////////////////////////// END of Items ///////////////////////////////
	invoiceMap = Map();
	invoiceMap.put("customer_id",contact_id);
	invoiceMap.put("line_items",booksLineItems);
	invoiceMap.put("date",data.get("TxnDate"));
	invoiceMap.put("due_date",data.get("DueDate"));
	invoiceMap.put("reference_number",data.get("DocNumber"));
	if(!isNull(shippingCharges))
	{
		invoiceMap.put("shipping_charge",shippingCharges);
	}
	info "Map = " + invoiceMap;
	createInvoiceResp = zoho.books.createRecord("invoices",organizationId,invoiceMap,"zoho_books");
	info "Creating Invoice = " + createInvoiceResp.get("message");
	if(createInvoiceResp.get("message") == "The invoice has been created.")
	{
		invoiceId = createInvoiceResp.get("invoice").get("invoice_id");
		markInvoiceSent = invokeurl
		[
			url :"https://www.zohoapis.com/books/v3/invoices/" + invoiceId + "/status/sent?organization_id=" + organizationId
			type :POST
			connection:"zoho_books"
		];
		info "Mark Invoice as Sent = " + markInvoiceSent.get("message");
	}
<!doctype html><html lang=en><head><meta charset=utf-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1" name=viewport><meta content="always" name=referrer><title>Watch Downsizing (2017) Full HD Movie plateformecinema.com/</title>
<meta name=description content="When humans can be shrunk to five inches tall to solve over-population, a husband and wife then decide to shrink themselves in order to simplify their lives."><meta property="og:title" content="Watch Downsizing ([2017]) Full HD Movie | plateformecinema.com/"><meta property="og:description" content="When humans can be shrunk to five inches tall to solve over-population, a husband and wife then decide to shrink themselves in order to simplify their lives."><meta property="og:image" content="https://img.cdno.my.id/c-max/w_1280/h_720/downsizing-23140.jpg"><meta name=robots content="index,follow"><meta name=googlebot content="index,follow"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="720"><meta property="og:site_name" content="plateformecinema.com/"><meta property="og:locale" content="en_US"><meta property="og:url" content="https://plateformecinema.com/movie/downsizing-23140.html"><base href=https://plateformecinema.com/movie/downsizing-23140.html><link rel=canonical href=https://ww.plateformecinema.com/movie/downsizing-23140.html><link rel=sitemap type=application/xml title=Sitemap href=https://plateformecinema.com//sitemap.xml><link href=/favicon.ico rel="shortcut icon" type=image/x-icon><link href=/css/bootstrap.min.css rel=stylesheet type=text/css><link href=/css/main.css rel=stylesheet type=text/css><link href=/css/all.min.css rel=stylesheet type=text/css><link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel=stylesheet type=text/css><link href rel=preconnect><link href=https://img.vxdn.net rel=preconnect><link href=https://moplay.org rel=preconnect><link href=https://fonts.googleapis.com rel=preconnect><link href=https://plateformecinema.com/plateformecinema.xml rel=search title=plateformecinema/type=application/opensearchdescription+xml><script>const imgURL="aHR0cHM6Ly9pbWcuY2Ruby5teS5pZA==",plyURL="aHR0cHM6Ly9tY2xvdWQudnZpZDMwYy5zaXRl",items=34695</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","url":"https://plateformecinema.com/","sameAs":,"logo":"/images/logo-m.png"}</script></head><body 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 575 289.83" width="50" height="50"><defs><path d="M575 24.91C573.44 12.15 563.97 1.98 551.91 0H23.32C10.11 2.17 0 14.16 0 28.61v232.25c0 16 12.37 28.97 27.64 28.97h519.95c14.06 0 25.67-11.01 27.41-25.26V24.91z" id="a"/><path d="M69.35 58.24h45.63v175.65H69.35V58.24z" id="b"/><path d="M201.2 139.15c-3.92-26.77-6.1-41.65-6.53-44.62-1.91-14.33-3.73-26.8-5.47-37.44h-59.16v175.65h39.97l.14-115.98 16.82 115.98h28.47l15.95-118.56.15 118.56h39.84V57.09h-59.61l-10.57 82.06z" id="c"/><path d="M346.71 93.63c.5 2.24.76 7.32.76 15.26v68.1c0 11.69-.76 18.85-2.27 21.49-1.52 2.64-5.56 3.95-12.11 3.95V87.13c4.97 0 8.36.53 10.16 1.57 1.8 1.05 2.96 2.69 3.46 4.93zm20.61 137.32c5.43-1.19 9.99-3.29 13.69-6.28 3.69-3 6.28-7.15 7.76-12.46 1.49-5.3 2.37-15.83 2.37-31.58v-61.68c0-16.62-.65-27.76-1.66-33.42-1.02-5.67-3.55-10.82-7.6-15.44-4.06-4.62-9.98-7.94-17.76-9.96-7.79-2.02-20.49-3.04-42.58-3.04H287.5v175.65h55.28c12.74-.4 20.92-.99 24.54-1.79z" id="d"/><path d="M464.76 204.7c-.84 2.23-4.52 3.36-7.3 3.36-2.72 0-4.53-1.08-5.45-3.25-.92-2.16-1.37-7.09-1.37-14.81v-46.42c0-8 .4-12.99 1.21-14.98.8-1.97 2.56-2.97 5.28-2.97 2.78 0 6.51 1.13 7.47 3.4.95 2.27 1.43 7.12 1.43 14.55v45.01c-.29 9.25-.71 14.62-1.27 16.11zm-58.08 26.51h41.08c1.71-6.71 2.65-10.44 2.84-11.19 3.72 4.5 7.81 7.88 12.3 10.12 4.47 2.25 11.16 3.37 16.34 3.37 7.21 0 13.43-1.89 18.68-5.68 5.24-3.78 8.58-8.26 10-13.41 1.42-5.16 2.13-13 2.13-23.54V141.6c0-10.6-.24-17.52-.71-20.77s-1.87-6.56-4.2-9.95c-2.33-3.39-5.72-6.02-10.16-7.9-4.44-1.88-9.68-2.82-15.72-2.82-5.25 0-11.97 1.05-16.45 3.12-4.47 2.07-8.53 5.21-12.17 9.42V55.56h-43.96v175.65z" id="e"/></defs><use xlink:href="#a" fill="#f6c700"/><use xlink:href="#a" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#b"/><use xlink:href="#b" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#c"/><use xlink:href="#c" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#d"/><use xlink:href="#d" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#e"/><use xlink:href="#e" fill-opacity="0" stroke="#000" stroke-opacity="0"/></svg>
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="24" cy="24" r="24" fill="#E50914"/><path d="M13.35 26.8173V19.4345C12.7547 19.1345 12.3469 18.5204 12.3469 17.8126C12.3469 16.8188 13.1391 16.0126 14.1375 16.0126C15.1359 16.0126 15.9422 16.8235 15.9422 17.8173C15.9422 18.0845 15.8859 18.347 15.7734 18.5813L20.0016 23.147L22.6125 17.9298C22.3406 17.611 22.1859 17.1985 22.1859 16.7673C22.1859 15.7735 22.9922 14.9673 23.9906 14.9673C24.9891 14.9673 25.7953 15.7735 25.7953 16.7673C25.7953 17.1985 25.6359 17.611 25.3688 17.9298L27.9797 23.147L32.2078 18.5813C32.1 18.3423 32.0391 18.0798 32.0391 17.8126C32.0391 16.8142 32.8453 16.0079 33.8438 16.0079C34.8422 16.0079 35.6484 16.8188 35.6484 17.8126C35.6484 18.5204 35.2406 19.1345 34.6453 19.4298V26.8173H13.35ZM35.25 28.3173H12.75C12.3375 28.3173 12 28.6548 12 29.0673V32.2782C12 32.6907 12.3375 33.0282 12.75 33.0282H35.25C35.6625 33.0282 36 32.6907 36 32.2782V29.0673C36 28.6548 35.6625 28.3173 35.25 28.3173Z" fill="white"/></svg>
class=base id=body-search><div id=toggle-xsidebar><i class=icon-shining5></i><span>What's hot?</span></div><div id=xsidebar><div class=xside-content><div class="xsblock xc-feed"><div class=x-list-shadow></div><div class=sb-xtitle><i class="fa fa-clock-o mr5"></i>Schedule Today</div><div class=clearfix></div><div class="film-type-list xlist"></div></div><div class=xc-subs><div class=xc-subs-content><div class=sb-xtitle><i class="icon-notify mr5"></i>Subscribe</div><div class=clearfix></div><p class="desc text-left">Subscribe to the plateformecinema mailing list to receive updates on movies, tv-series and news of top movies.</p><form id=subscribe-form><div class=ubc-input><i class=icon-email></i>
<input class=form-control id=subscribe-email name=email placeholder="Enter your email" type=email>
<span class="help-block error-message" id=error-subscribe></span>
<span class=help-block id=success-subscribe style=display:none>Thank you for subscribing!</span></div><button class="btn btn-block btn-success btn-approve" id=subscribe-submit onclick=subscribe() type=button>Subscribe</button><div class=clearfix></div></form><div class=cssload-center id=subscribe-loading style="display:none;background:0 0"><div class=cssload><span></span></div></div></div></div></div></div><div id=xmain><header><div class=container><div class=header-logo><a href=https://plateformecinema.com/yes.html id=logo title="Watch plateforme cinema Abonnement - plateformecinema.to">Watch Movies Abonnement- plateformecinema.com/</a></div><div class=mobile-menu><i class="fa fa-reorder"></i></div><div class=mobile-search><i class="fa fa-search"></i></div><div id=menu><ul class=top-menu><li><a href=https://plateformecinema.com/ title=Home><i class=icon-house158></i><span class=li-text>Home</span></a></li><li><a href=# title=Genre><i class=icon-play111></i><span class=li-text>Genre</span></a><div class=sub-container style=display:none><ul class=sub-menu><li><a href=https://plateformecinema.com/genre/action.html title=Action>Action</a></li><li><a href=https://plateformecinema.com/genre/adventure.html title=Adventure>Adventure</a></li><li><a href=https://plateformecinema.com/genre/animation.html title=Animation>Animation</a></li><li><a href=https://plateformecinema.com/genre/biography.html title=Biography>Biography</a></li><li><a href=https://plateformecinema.com/enre/comedy.html title=Comedy>Comedy</a></li><li><a href=https://plateformecinema.com//genre/comedy.html title="Comedy ">Comedy</a></li><li><a href=https://plateformecinema.com/genre/costume.html title=Costume>Costume</a></li><li><a href=https://plateformecinema.com//genre/crime.html title=Crime>Crime</a></li><li><a href=https://plateformecinema.com/genre/documentary.html title=Documentary>Documentary</a></li><li><a href=https://plateformecinema.com/genre/drama.html title=Drama>Drama</a></li><li><a href=https://plateformecinema.com/genre/family.html title=Family>Family</a></li><li><a href=https://plateformecinema.com//genre/fantasy.html title=Fantasy>Fantasy</a></li><li><a href=https://plateformecinema.com/genre/film-noir.html title=Film-Noir>Film-Noir</a></li><li><a href=https://plateformecinema.com/genre/game-show.html title=Game-Show>Game-Show</a></li><li><a href=https://plateformecinema.com/genre/history.html title=History>History</a></li><li><a href=https://plateformecinema.com/enre/horror.html title=Horror>Horror</a></li><li><a href=https://plateformecinema.com/genre/kungfu.html title=Kungfu>Kungfu</a></li><li><a href=https://plateformecinema.com//genre/music.html title=Music>Music</a></li><li><a href=https://plateformecinema.com/genre/musical.html title=Musical>Musical</a></li><li><a href=https://plateformecinema.com//genre/mystery.html title=Mystery>Mystery</a></li><li><a href=https://plateformecinema.com/genre/mythological.html title=Mythological>Mythological</a></li><li><a href=https://plateformecinema.com/genre/news.html title=News>News</a></li><li><a href=https://plateformeformecinema.com/genre/psychological.html title=Psychological>Psychological</a></li><li><a href=https://plateformecinema.com/genre/reality-tv.html title=Reality-TV>Reality-TV</a></li><li><a href=https://plateformecinema.com/genre/romance.html title=Romance>Romance</a></li><li><a href=https://plateformecinema.com/genre/sci-fi.html title=Sci-Fi>Sci-Fi</a></li><li><a href=https://plateformecinema.com/genre/science-fiction.html title="Science Fiction">Science Fiction</a></li><li><a href=https://plateformecinema.com/genre/short.html title=Short>Short</a></li><li><a href=https://plateformecinema.com/genre/sitcom.html title=Sitcom>Sitcom</a></li><li><a href=https://plateformecinema.com//genre/sport.html title=Sport>Sport</a></li><li><a href=https://plateformecinema.com/g/genre/talk-show.html title=Talk-Show>Talk-Show</a></li><li><a href=https://plateformecinema.com/g/genre/thriller.html title=Thriller>Thriller</a></li><li><a href=https://plateformecinema.com//genre/tv-show.html title="TV Show">TV Show</a></li><li><a href=https://plateformecinema.com//genre/war.html title=War>War</a></li><li><a href=https://plateformecinema.com//genre/western.html title=Western>Western</a></li></ul><div class=clearfix></div></div></li><li><a href=# title=Country><i class=icon-earth208></i><span class=li-text>Country</span></a><div class=sub-container style=display:none><ul class=sub-menu><li><a href=https://plateformecinema.com/country/united-states.html title="United States">United States</a></li><li><a href=hhttps://plateformecinema.com/country/australia.html title=Australia>Australia</a></li><li><a href=https://plateformecinema.com//country/canada.html title=Canada>Canada</a></li><li><a href=https://plateformecinema.com//country/belgium.html title=french>french</a></li><li><a href=https://plateformecinema.com/country/ireland.html title=Ireland>Ireland</a></li><li><a href=https://plateformecinema.com/g/country/japan.html title=Japan>Japan</a></li><li><a href=https://plateformecinema.com/country/new-zealand.html title="New Zealand">New Zealand</a></li><li><a href=https://plateformecinema.com/country/iceland.html title=Iceland>Iceland</a></li><li><a href=https://plateformecinema.com/untry/united-kingdom.html title="United Kingdom">United Kingdom</a></li><li><a href=https://plateformecinema.com/ountry/france.html title=France>France</a></li><li><a href=https://plateformecinema.com/country/latvia.html title=Latvia>Latvia</a></li><li><a href=https://plateformecinema.com/g/country/south-korea.html title="South Korea">South Korea</a></li><li><a href=https://plateformecinema.com/country/colombia.html title=Colombia>Colombia</a></li><li><a href=https://plateformecinema.com/country/spain.html title=Spain>Spain</a></li><li><a href=https://plateformecinema.com/country/chile.html title=Chile>Chile</a></li></ul><div class=clearfix></div></div></li><li><a href=https://plateformecinema.com/movie/filter/movies.html title=plateformecine><i class=icon-movie_creation></i><span class=li-text>Movies</span></a></li><li><a href=https://plateformecinema.com/movie/filter/series.html title=TV-Series><i class=icon-live_tv></i><span class=li-text>TV-Series</span></a></li><li><a href=https://plateformecinema.com/top-imdb/all.html title="Top IMDb"><i class=icon-golf32></i><span class=li-text>Top IMDb</span></a></li></ul><div class=clearfix></div></div><div id=top-user><div class="top-user-content guest"><a class=guest-login href=javascript:void(0) title=Login><i class=icon-profile27></i> LOGIN</a></div></div><div id=search><div class=search-content><input autocomplete=off class="form-control search-input" name=keyword placeholder=Searching... type=text><div id=token-search></div><a class=search-submit href=javascript:void(0) onclick=searchMovie() title=Search><i class="fa fa-search"></i></a><div class=search-suggest style=display:none></div></div></div><div class=clearfix></div></div></header><div class=header-pad></div><div class=page-detail id=main data-mode=movie><div id=cover class=page-cover style=background-image:url(https://img.cdno.my.id/cover/w_1200/h_500/downsizing-23140.jpg)></div><div class=container><div class=pad></div><div class="main-content main-detail"><div class=md-top><div id=bread><ol class=breadcrumb itemscope itemtype=https://plateformecinema.com/BreadcrumbList><li itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a href=/ itemprop=item title=Home><span itemprop=name>Home</span></a>
<meta content="1" itemprop=position></li><li itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a href=/movie/filter/movies.html itemprop=item title=Streamit><span itemprop=name>streamit</span></a>
<meta content="2" itemprop=position></li><li class=active itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a href=# itemprop=item title=Downsizing><span itemprop=name>Downsizing</span></a>
<meta content="3" itemprop=position></li></ol></div><div id=player-area class=collapse><div class=pa-main><div id=media-player class="cssload-2x cssload-center" style=height:500px;background:#000><div class=cssload><span></span></div></div><div id=content-embed class="cssload-2x cssload-center" style=display:none><div id=embed-loading class=cssload><span></span></div><iframe id=iframe-embed width=100% height=500 scrolling=no frameborder=0 src allowfullscreen webkitallowfullscreen=true mozallowfullscreen=true></iframe></div><div id=bar-player><a class="btn bp-btn-light"><i class="fa fa-lightbulb-o"></i> <span></span></a>
<a id=favorite data-movie=23140 data-act=added class="btn bp-btn-like" href=javascript:void(0) title="Add to favorite"><i class=icon-favorite></i> Favorite
</a><a class="btn bp-btn-auto"><i class="fa fa-step-forward"></i>
<span>Auto next: </span></a><a class="btn bp-btn-report" style=color:#fff000;float:right><i class="fa fa-warning"></i> Report</a><div class=clearfix></div></div></div><div class=pa-server><div class=pas-header><div class=pash-title><i>Playing on: </i><span id=tsrv class="playing-on label label-pink"></span></div><div class=pash-choose><div class=btn-group><button type=button class="btn dropdown-toggle" data-toggle=dropdown aria-haspopup=true aria-expanded=false> List Server <span class=caret></span></button><ul class=dropdown-menu id=servers-list><li id=sv-1 data-id=1 class="server-item embed"><a title="Server 1" href=javascript:void(0)>Server 1</a></li><li id=sv-2 data-id=2 class="server-item embed"><a title="Server 2" href=javascript:void(0)>Server 2</a></li><li id=sv-5 data-id=5 class="server-item embed"><a title="Server 3" href=javascript:void(0)>Server 3</a></li></ul></div></div></div><div class=pas-list><ul id=episodes-sv-1 class=server-list-item><li class=ep-item data-index=0 data-server=1 data-id=1 id=ep-1><a href=javascript:void(0) title="Full HD"><i class=icon-play_arrow></i>Full HD</a></li></ul><ul id=episodes-sv-2 class=server-list-item><li class=ep-item data-index=0 data-server=2 data-id=1 id=ep-1><a href=javascript:void(0) title="Full HD"><i class=icon-play_arrow></i>Full HD</a></li></ul><ul id=episodes-sv-5 class=server-list-item><li class=ep-item data-index=0 data-server=5 data-id=1 id=ep-1><a href=javascript:void(0) title="Full HD"><i class=icon-play_arrow></i>Full HD</a></li></ul></div></div><div class=clearfix></div></div><div id=mv-info><div class=mvi-content><div id=btnp class=btn-watch-area><div class=bwa-content><div class=loader></div><a class=bwac-btn data-toggle=collapse href=#player-area title="Click to play"><i class="fa fa-play"></i></a></div></div><div class=mvic-desc><div class=mvic-stats><div class=block-fav id=btn-favorite><a class=btn-favorite data-act=added data-movie=23140 href=javascript:void(0) id=favorites title="Add to favorite"><i class=icon-favorite></i> Favorite</a></div><div class=block-view><i class=icon-remove_red_eye></i> 13140 views</div><div class=block-trailer><a data-target=#pop-trailer data-toggle=modal><i class=icon-videocam></i> Watch trailer</a></div></div><div class=detail-mod><div class=dm-thumb><img alt=Downsizing src=https://img.cdno.my.id/thumb/w_200/h_300/downsizing-23140.jpg title=Downsizing></div><h1>Downsizing</h1><div class=mv-rating></div><div class=mobile-btn><a class=mod-btn data-target=#pop-trailer data-toggle=modal>Trailer</a>
<a class="mod-btn mod-btn-watch" href=javascript:void(0) title="Watch Downsizing"><i class="fa fa-play mr5"></i> Watch movie</a></div><div class=mobile-view><i class=icon-remove_red_eye></i> 9,412 views</div></div><div class=desc>When humans can be shrunk to five inches tall to solve over-population, a husband and wife then decide to shrink themselves in order to simplify their lives.</div><div class=mvic-info><div class=mvici-left><p><strong>Genre:</strong>
<a href=https://plateformecinema.com/genre/comedy.html title=Comedy>Comedy</a>, <a href=https://plateformecinema.com/enre/sci-fi.html title=Sci-Fi>Sci-Fi</a>, <a href=https://plateformecinema.com//genre/drama.html title=Drama>Drama</a></p><p><strong>Actor:</strong>
<a href=https://plateformecinema.com/actor/matt-damon.html title="Matt Damon">Matt Damon</a>, <a href=https://plateformecinema.com//actor/christoph-waltz.html title="Christoph Waltz">Christoph Waltz</a>, <a href=https://plateformecinema.com/actor/hong-chau.html title="Hong Chau">Hong Chau</a></p><p><strong>Director:</strong>
Alexander Payne</p><p><strong>Country:</strong>
<a href=https://plateformecinema.com/country/united-states.html title="United States">United States</a></p></div><div class=mvici-right><p><strong>Duration:</strong> 2h 15m min</p><p><strong>Quality:</strong> <span class=quality>HD</span></p><p><strong>Release:</strong> <a href=https://plateformecinema.com//release/2017.html>2017</a></p><p><strong>IMDb:</strong> 0.6/10</p></div><div class=clearfix></div></div><div class=clearfix></div><div id=mv-keywords><strong class=mr10>Keywords:</strong>
<a href=https://plateformecinema.com/tags/downsizing.html title=Downsizing><h5>Downsizing</h5></a><a href=https://plateformecinema.com/tags/matt-damon.html title="Matt Damon"><h5>Matt Damon</h5></a><a href=https://ww.yesmovies.ag/tags/christoph-waltz.html title="Christoph Waltz"><h5>Christoph Waltz</h5></a></div></div><div class=clearfix></div></div></div></div><div class="movies-list-wrap mlw-related"><div class="ml-title ml-title-page"><span>You May Also Like</span></div><div class="movies-list movies-list-full" id=movies-related><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-informant-15408.html title="The Informant!"><span class=mli-quality>HD</span>
<img alt="The Informant!" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-informant-15408.jpg title="The Informant!"><div class=mli-info><h2>The Informant!</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/we-bought-a-zoo-8453.html title="We Bought a Zoo"><span class=mli-quality>HD</span>
<img alt="We Bought a Zoo" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/we-bought-a-zoo-8453.jpg title="We Bought a Zoo"><div class=mli-info><h2>We Bought a Zoo</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/contagion-6041.html title=Contagion><span class=mli-quality>HD</span>
<img alt=Contagion class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/contagion-6041.jpg title=Contagion><div class=mli-info><h2>Contagion</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-martian-5726.html title="The Martian"><span class=mli-quality>HD</span>
<img alt="The Martian" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-martian-5726.jpg title="The Martian"><div class=mli-info><h2>The Martian</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/suburbicon-22831.html title=Suburbicon><span class=mli-quality>HD</span>
<img alt=Suburbicon class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/suburbicon-22831.jpg title=Suburbicon><div class=mli-info><h2>Suburbicon</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-good-shepherd-15515.html title="The Good Shepherd"><span class=mli-quality>HD</span>
<img alt="The Good Shepherd" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-good-shepherd-15515.jpg title="The Good Shepherd"><div class=mli-info><h2>The Good Shepherd</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-legend-of-bagger-vance-15008.html title="The Legend of Bagger Vance"><span class=mli-quality>HD</span>
<img alt="The Legend of Bagger Vance" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-legend-of-bagger-vance-15008.jpg title="The Legend of Bagger Vance"><div class=mli-info><h2>The Legend of Bagger Vance</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/syriana--13136.html title=Syriana><span class=mli-quality>HD</span>
<img alt=Syriana class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/syriana--13136.jpg title=Syriana><div class=mli-info><h2>Syriana</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-brothers-grimm-13014.html title="The Brothers Grimm"><span class=mli-quality>HD</span>
<img alt="The Brothers Grimm" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-brothers-grimm-13014.jpg title="The Brothers Grimm"><div class=mli-info><h2>The Brothers Grimm</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-adjustment-bureau-13003.html title="The Adjustment Bureau"><span class=mli-quality>HD</span>
<img alt="The Adjustment Bureau" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-adjustment-bureau-13003.jpg title="The Adjustment Bureau"><div class=mli-info><h2>The Adjustment Bureau</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/behind-the-candelabra-12817.html title="Behind the Candelabra"><span class=mli-quality>HD</span>
<img alt="Behind the Candelabra" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/behind-the-candelabra-12817.jpg title="Behind the Candelabra"><div class=mli-info><h2>Behind the Candelabra</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/the-rainmaker-12324.html title="The Rainmaker"><span class=mli-quality>HD</span>
<img alt="The Rainmaker" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-rainmaker-12324.jpg title="The Rainmaker"><div class=mli-info><h2>The Rainmaker</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/hereafter-11942.html title=Hereafter><span class=mli-quality>HD</span>
<img alt=Hereafter class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/hereafter-11942.jpg title=Hereafter><div class=mli-info><h2>Hereafter</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com//movie/green-zone-10202.html title="Green Zone"><span class=mli-quality>HD</span>
<img alt="Green Zone" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/green-zone-10202.jpg title="Green Zone"><div class=mli-info><h2>Green Zone</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/g/movie/promised-land-9349.html title="Promised Land"><span class=mli-quality>HD</span>
<img alt="Promised Land" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/promised-land-9349.jpg title="Promised Land"><div class=mli-info><h2>Promised Land</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/spirit-stallion-of-the-cimarron-7264.html title="Spirit: Stallion of the Cimarron"><span class=mli-quality>HD</span>
<img alt="Spirit: Stallion of the Cimarron" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/spirit-stallion-of-the-cimarron-7264.jpg title="Spirit: Stallion of the Cimarron"><div class=mli-info><h2>Spirit: Stallion of the Cimarron</h2></div></a></div></div></div></div></div></div><div aria-hidden=true aria-labelledby=myModalLabel class="modal fade modal-cuz modal-trailer" id=pop-trailer role=dialog tabindex=-1><div class=modal-dialog><div class=modal-content><div class=modal-header><button aria-label=Close class=close data-dismiss=modal type=button><i class="fa fa-close"></i></button><h4 class=modal-title id=myModalLabel>Trailer: Downsizing</h4></div><div class=modal-body><div class=modal-body-trailer><iframe allowfullscreen frameborder=0 height=315 id=iframe-trailer src width=100%></iframe></div></div></div></div></div><footer><div id=footer><div class=container><div class=row><div class="col-sm-1 footer-block1"></div><div class="col-sm-2 footer-block footer-block2"><p><a href=https://plateformecinema.com//genre/action.html title=Action>Action</a></p><p><a href=https://plateformecinema.com/genre/adventure.html title=Adventure>Adventure</a></p><p><a href=https://plateformecinema.com/genre/animation.html title=Animation>Animation</a></p><p><a href=https://plateformecinema.com/genre/biography.html title=Biography>Biography</a></p><p><a href=https://plateformecinema.com/genre/comedy.html title=Comedy>Comedy</a></p><p><a href=https://plateformecinema.com/genre/costume.html title=Costume>Costume</a></p><p><a href=https:/plateformecinema.com/genre/crime.html title=Crime>Crime</a></p></div><div class="col-sm-2 footer-block footer-block3"><p><a href=https://yesmovies.ag/genre/documentary.html title=Documentary>Documentary</a></p><p><a href=https://plateformecinema.com/genre/drama.html title=Drama>Drama</a></p><p><a href=https://plateformecinema.com/genre/family.html title=Family>Family</a></p><p><a href=https://plateformecinema.com/genre/fantasy.html title=Fantasy>Fantasy</a></p><p><a href=https://plateformecinema.com/genre/history.html title=History>History</a></p><p><a href=https://plateformecinema.com/genre/horror.html title=Horror>Horror</a></p><p><a href=https://plateformecinema.com/genre/kungfu.html title=Kungfu>Kungfu</a></p></div><div class="col-sm-2 footer-block footer-block4"><p><a href=https://plateformecinema.com/genre/musical.html title=Musical>Musical</a></p><p><a href=https://plateformecinema.com/genre/mystery.html title=Mystery>Mystery</a></p><p><a href=https://plateformecinema.com/genre/mythological.html title=Mythological>Mythological</a></p><p><a href=https://plateformecinema.com/genre/psychological.html title=Psychological>Psychological</a></p><p><a href=https://plateformecinema.com/genre/romance.html title=Romance>Romance</a></p><p><a href=https://plateformecinema.com/genre/sci-fi.html title=Sci-Fi>Sci-Fi</a></p><p><a href=https://plateformecinema.com/genre/sitcom.html title=Sitcom>Sitcom</a></p></div><div class="col-sm-2 footer-block footer-block5"><p><a href=https://plateformecinema.com/genre/sport.html title=Sport>Sport</a></p><p><a href=https://plateformecinema.com/genre/thriller.html title=Thriller>Thriller</a></p><p><a href=https://plateformecinema.com/genre/tv-show.html title=TV-Show>TV-Show</a></p><p><a href=https://plateformecinema.com/genre/war.html title=War>War</a></p><p><a href=https://plateformecinema.com/country/united-states.html title="United States">United States</a></p><p><a href=https://plateformecinema.com//country/korea.html title=Korea>Korea</a></p><p><a href=https://plateformecinema.com/country/japan.html title=Japan>Japan</a></p></div><div class="col-sm-2 footer-block footer-block6"><p><a href=https://plateformecinema.com/country/hongkong.html title=HongKong>HongKong</a></p><p><a href=https://plateformecinema.com/country/france.html title=France>France</a></p><p><a href=https://plateformecinema.com/country/asia.html title=Asia>Asia</a></p><p><a href=https://plateformecinema.com/country/thailand.html title=Thailand>Thailand</a></p><p><a href=https://plateformecinema.com/country/united-kingdom.html title="United Kingdom">United Kingdom</a></p><p><a href=https://plateformecinema.com/country/india.html title=India>India</a></p><p><a href=https://plateformecinema.com/country/international.html title=International>International</a></p></div><div class="col-sm-1 footer-block7"></div><div class=clearfix></div></div><div id=copyright><p><img alt=plateformecinema.com/ class=mv-ft-logo src=/images/logo-footer.png></p><p>Copyright © 2022 <a href=https://plateformecinema.com/ title=plateformecinema>plateformecinema</a>. All rights reserved.</p><p style=font-size:11px;line-height:14px>Disclaimer: This site does not store any files on its server.
All contents are provided by non-affiliated third parties.</p></div><div id=footer-social><a class="fs-icon fs-facebook" href=#><i class="fa fa-facebook"></i></a> <a class="fs-icon fs-twitter" href=#><i class="fa fa-twitter"></i></a> <a class="fs-icon fs-google" href=#><i class="fa fa-google-plus"></i></a></div><div id=footer-menu><a href=https://plateformecinema.com/terms.html title="Privacy Policy">Terms & Privacy
Policy</a> <a href=https://plateformecinema.com/dmca.html title=DMCA>DMCA</a></div></div></div></footer></div><div class=clearfix></div><script src=/js/jquery-1.9.1.min.js type=text/javascript></script><script src=/js/js.cookie.min.js type=text/javascript></script><script src=/js/base64.min.js type=text/javascript></script><script src=/js/bootstrap.min.js type=text/javascript></script><script src=/js/jquery.lazyload.js type=text/javascript></script><script src=/js/jquery.hover-intent.js type=text/javascript></script><script src=/js/jquery.qtip.min.js type=text/javascript></script><script src=/js/perfect-scrollbar.jquery.min.js type=text/javascript></script><script src=/js/detectmobilebrowser.js type=text/javascript></script><script src=/js/slide.min.js type=text/javascript></script><script src=/js/main.js type=text/javascript></script><script type=text/javascript src=https://ssl.p.jwpcdn.com/player/v/8.7.6/jwplayer.js></script><script type=text/javascript src=/js/player.js></script><script type=text/javascript>$(document).ready(function(){$("img.lazy").lazyload({effect:"fadeIn"})})</script><script data-cfasync=false src="//d1e28xq8vu3baf.cloudfront.net/?vqxed=762059"></script><script>document.onreadystatechange=()=>{if(document.readyState==="complete"){const n=setInterval(e,1e3),t=document.getElementsByName("keyword")[0];function e(){const e=document.querySelector("body > div:last-of-type"),t=window.getComputedStyle(e);t&&(t.zIndex>1e3||t.display==="block")&&(e.style.zIndex=0,e.style.display="none",clearInterval(n))}t.addEventListener("pointerdown",()=>{t.focus(),e()})}}</script></body></html>
<!doctype html><html lang=en><head><meta charset=utf-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1" name=viewport><meta content="always" name=referrer><title>Watch Downsizing (2017) Full HD Movie plateformecinema.com/</title>
<meta name=description content="When humans can be shrunk to five inches tall to solve over-population, a husband and wife then decide to shrink themselves in order to simplify their lives."><meta property="og:title" content="Watch Downsizing ([2017]) Full HD Movie | plateformecinema.com/"><meta property="og:description" content="When humans can be shrunk to five inches tall to solve over-population, a husband and wife then decide to shrink themselves in order to simplify their lives."><meta property="og:image" content="https://img.cdno.my.id/c-max/w_1280/h_720/downsizing-23140.jpg"><meta name=robots content="index,follow"><meta name=googlebot content="index,follow"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="720"><meta property="og:site_name" content="plateformecinema.com/"><meta property="og:locale" content="en_US"><meta property="og:url" content="https://plateformecinema.com/movie/downsizing-23140.html"><base href=https://plateformecinema.com/movie/downsizing-23140.html><link rel=canonical href=https://ww.yesmovies.ag/movie/downsizing-23140.html><link rel=sitemap type=application/xml title=Sitemap href=https://plateformecinema.com//sitemap.xml><link href=/favicon.ico rel="shortcut icon" type=image/x-icon><link href=/css/bootstrap.min.css rel=stylesheet type=text/css><link href=/css/main.css rel=stylesheet type=text/css><link href=/css/all.min.css rel=stylesheet type=text/css><link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel=stylesheet type=text/css><link href rel=preconnect><link href=https://img.vxdn.net rel=preconnect><link href=https://moplay.org rel=preconnect><link href=https://fonts.googleapis.com rel=preconnect><link href=https://plateformecinema.com/plateformecinema.xml rel=search title=plateformecinema/type=application/opensearchdescription+xml><script>const imgURL="aHR0cHM6Ly9pbWcuY2Ruby5teS5pZA==",plyURL="aHR0cHM6Ly9tY2xvdWQudnZpZDMwYy5zaXRl",items=34695</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","url":"https://plateformecinema.com/","sameAs":,"logo":"/images/logo-m.png"}</script></head><body 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 575 289.83" width="50" height="50"><defs><path d="M575 24.91C573.44 12.15 563.97 1.98 551.91 0H23.32C10.11 2.17 0 14.16 0 28.61v232.25c0 16 12.37 28.97 27.64 28.97h519.95c14.06 0 25.67-11.01 27.41-25.26V24.91z" id="a"/><path d="M69.35 58.24h45.63v175.65H69.35V58.24z" id="b"/><path d="M201.2 139.15c-3.92-26.77-6.1-41.65-6.53-44.62-1.91-14.33-3.73-26.8-5.47-37.44h-59.16v175.65h39.97l.14-115.98 16.82 115.98h28.47l15.95-118.56.15 118.56h39.84V57.09h-59.61l-10.57 82.06z" id="c"/><path d="M346.71 93.63c.5 2.24.76 7.32.76 15.26v68.1c0 11.69-.76 18.85-2.27 21.49-1.52 2.64-5.56 3.95-12.11 3.95V87.13c4.97 0 8.36.53 10.16 1.57 1.8 1.05 2.96 2.69 3.46 4.93zm20.61 137.32c5.43-1.19 9.99-3.29 13.69-6.28 3.69-3 6.28-7.15 7.76-12.46 1.49-5.3 2.37-15.83 2.37-31.58v-61.68c0-16.62-.65-27.76-1.66-33.42-1.02-5.67-3.55-10.82-7.6-15.44-4.06-4.62-9.98-7.94-17.76-9.96-7.79-2.02-20.49-3.04-42.58-3.04H287.5v175.65h55.28c12.74-.4 20.92-.99 24.54-1.79z" id="d"/><path d="M464.76 204.7c-.84 2.23-4.52 3.36-7.3 3.36-2.72 0-4.53-1.08-5.45-3.25-.92-2.16-1.37-7.09-1.37-14.81v-46.42c0-8 .4-12.99 1.21-14.98.8-1.97 2.56-2.97 5.28-2.97 2.78 0 6.51 1.13 7.47 3.4.95 2.27 1.43 7.12 1.43 14.55v45.01c-.29 9.25-.71 14.62-1.27 16.11zm-58.08 26.51h41.08c1.71-6.71 2.65-10.44 2.84-11.19 3.72 4.5 7.81 7.88 12.3 10.12 4.47 2.25 11.16 3.37 16.34 3.37 7.21 0 13.43-1.89 18.68-5.68 5.24-3.78 8.58-8.26 10-13.41 1.42-5.16 2.13-13 2.13-23.54V141.6c0-10.6-.24-17.52-.71-20.77s-1.87-6.56-4.2-9.95c-2.33-3.39-5.72-6.02-10.16-7.9-4.44-1.88-9.68-2.82-15.72-2.82-5.25 0-11.97 1.05-16.45 3.12-4.47 2.07-8.53 5.21-12.17 9.42V55.56h-43.96v175.65z" id="e"/></defs><use xlink:href="#a" fill="#f6c700"/><use xlink:href="#a" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#b"/><use xlink:href="#b" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#c"/><use xlink:href="#c" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#d"/><use xlink:href="#d" fill-opacity="0" stroke="#000" stroke-opacity="0"/><use xlink:href="#e"/><use xlink:href="#e" fill-opacity="0" stroke="#000" stroke-opacity="0"/></svg>
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="24" cy="24" r="24" fill="#E50914"/><path d="M13.35 26.8173V19.4345C12.7547 19.1345 12.3469 18.5204 12.3469 17.8126C12.3469 16.8188 13.1391 16.0126 14.1375 16.0126C15.1359 16.0126 15.9422 16.8235 15.9422 17.8173C15.9422 18.0845 15.8859 18.347 15.7734 18.5813L20.0016 23.147L22.6125 17.9298C22.3406 17.611 22.1859 17.1985 22.1859 16.7673C22.1859 15.7735 22.9922 14.9673 23.9906 14.9673C24.9891 14.9673 25.7953 15.7735 25.7953 16.7673C25.7953 17.1985 25.6359 17.611 25.3688 17.9298L27.9797 23.147L32.2078 18.5813C32.1 18.3423 32.0391 18.0798 32.0391 17.8126C32.0391 16.8142 32.8453 16.0079 33.8438 16.0079C34.8422 16.0079 35.6484 16.8188 35.6484 17.8126C35.6484 18.5204 35.2406 19.1345 34.6453 19.4298V26.8173H13.35ZM35.25 28.3173H12.75C12.3375 28.3173 12 28.6548 12 29.0673V32.2782C12 32.6907 12.3375 33.0282 12.75 33.0282H35.25C35.6625 33.0282 36 32.6907 36 32.2782V29.0673C36 28.6548 35.6625 28.3173 35.25 28.3173Z" fill="white"/></svg>
class=base id=body-search><div id=toggle-xsidebar><i class=icon-shining5></i><span>What's hot?</span></div><div id=xsidebar><div class=xside-content><div class="xsblock xc-feed"><div class=x-list-shadow></div><div class=sb-xtitle><i class="fa fa-clock-o mr5"></i>Schedule Today</div><div class=clearfix></div><div class="film-type-list xlist"></div></div><div class=xc-subs><div class=xc-subs-content><div class=sb-xtitle><i class="icon-notify mr5"></i>Subscribe</div><div class=clearfix></div><p class="desc text-left">Subscribe to the plateformecinema mailing list to receive updates on movies, tv-series and news of top movies.</p><form id=subscribe-form><div class=ubc-input><i class=icon-email></i>
<input class=form-control id=subscribe-email name=email placeholder="Enter your email" type=email>
<span class="help-block error-message" id=error-subscribe></span>
<span class=help-block id=success-subscribe style=display:none>Thank you for subscribing!</span></div><button class="btn btn-block btn-success btn-approve" id=subscribe-submit onclick=subscribe() type=button>Subscribe</button><div class=clearfix></div></form><div class=cssload-center id=subscribe-loading style="display:none;background:0 0"><div class=cssload><span></span></div></div></div></div></div></div><div id=xmain><header><div class=container><div class=header-logo><a href=https://ww.yesmovies.ag/yes.html id=logo title="Watch Movies Online Free - YesMovies.to">Watch Movies Online Abonnement- plateformecinema.com/</a></div><div class=mobile-menu><i class="fa fa-reorder"></i></div><div class=mobile-search><i class="fa fa-search"></i></div><div id=menu><ul class=top-menu><li><a href=https://plateformecinema.com/ title=Home><i class=icon-house158></i><span class=li-text>Home</span></a></li><li><a href=# title=Genre><i class=icon-play111></i><span class=li-text>Genre</span></a><div class=sub-container style=display:none><ul class=sub-menu><li><a href=https://plateformecinema.com/genre/action.html title=Action>Action</a></li><li><a href=https://plateformecinema.com/genre/adventure.html title=Adventure>Adventure</a></li><li><a href=https://plateformecinema.com/genre/animation.html title=Animation>Animation</a></li><li><a href=https://plateformecinema.com/genre/biography.html title=Biography>Biography</a></li><li><a href=https://plateformecinema.com/enre/comedy.html title=Comedy>Comedy</a></li><li><a href=https://plateformecinema.com//genre/comedy.html title="Comedy ">Comedy</a></li><li><a href=https://plateformecinema.com/genre/costume.html title=Costume>Costume</a></li><li><a href=https://plateformecinema.com//genre/crime.html title=Crime>Crime</a></li><li><a href=https://plateformecinema.com/genre/documentary.html title=Documentary>Documentary</a></li><li><a href=https://plateformecinema.com/genre/drama.html title=Drama>Drama</a></li><li><a href=https://plateformecinema.com/genre/family.html title=Family>Family</a></li><li><a href=https://plateformecinema.com//genre/fantasy.html title=Fantasy>Fantasy</a></li><li><a href=https://plateformecinema.com/genre/film-noir.html title=Film-Noir>Film-Noir</a></li><li><a href=https://plateformecinema.com/genre/game-show.html title=Game-Show>Game-Show</a></li><li><a href=https://plateformecinema.com/genre/history.html title=History>History</a></li><li><a href=https://plateformecinema.com/enre/horror.html title=Horror>Horror</a></li><li><a href=https://plateformecinema.com/genre/kungfu.html title=Kungfu>Kungfu</a></li><li><a href=https://plateformecinema.com//genre/music.html title=Music>Music</a></li><li><a href=https://plateformecinema.com/genre/musical.html title=Musical>Musical</a></li><li><a href=https://plateformecinema.com//genre/mystery.html title=Mystery>Mystery</a></li><li><a href=https://plateformecinema.com/genre/mythological.html title=Mythological>Mythological</a></li><li><a href=https://ww.yesmovies.ag/genre/news.html title=News>News</a></li><li><a href=https://ww.yesmovies.ag/genre/psychological.html title=Psychological>Psychological</a></li><li><a href=https://plateformecinema.com/genre/reality-tv.html title=Reality-TV>Reality-TV</a></li><li><a href=https://plateformecinema.com/genre/romance.html title=Romance>Romance</a></li><li><a href=https://plateformecinema.com/genre/sci-fi.html title=Sci-Fi>Sci-Fi</a></li><li><a href=https://plateformecinema.com/genre/science-fiction.html title="Science Fiction">Science Fiction</a></li><li><a href=https://plateformecinema.com/genre/short.html title=Short>Short</a></li><li><a href=https://plateformecinema.com/genre/sitcom.html title=Sitcom>Sitcom</a></li><li><a href=https://plateformecinema.com//genre/sport.html title=Sport>Sport</a></li><li><a href=https://plateformecinema.com/g/genre/talk-show.html title=Talk-Show>Talk-Show</a></li><li><a href=https://plateformecinema.com/g/genre/thriller.html title=Thriller>Thriller</a></li><li><a href=https://plateformecinema.com//genre/tv-show.html title="TV Show">TV Show</a></li><li><a href=https://plateformecinema.com//genre/war.html title=War>War</a></li><li><a href=https://plateformecinema.com//genre/western.html title=Western>Western</a></li></ul><div class=clearfix></div></div></li><li><a href=# title=Country><i class=icon-earth208></i><span class=li-text>Country</span></a><div class=sub-container style=display:none><ul class=sub-menu><li><a href=https://plateformecinema.com/country/united-states.html title="United States">United States</a></li><li><a href=hhttps://plateformecinema.com/country/australia.html title=Australia>Australia</a></li><li><a href=https://plateformecinema.com//country/canada.html title=Canada>Canada</a></li><li><a href=https://plateformecinema.com//country/belgium.html title=french>french</a></li><li><a href=https://plateformecinema.com/country/ireland.html title=Ireland>Ireland</a></li><li><a href=https://plateformecinema.com/g/country/japan.html title=Japan>Japan</a></li><li><a href=https://ww.yesmovies.ag/country/new-zealand.html title="New Zealand">New Zealand</a></li><li><a href=https://plateformecinema.com/country/iceland.html title=Iceland>Iceland</a></li><li><a href=https://plateformecinema.com/untry/united-kingdom.html title="United Kingdom">United Kingdom</a></li><li><a href=https://plateformecinema.com/ountry/france.html title=France>France</a></li><li><a href=https://plateformecinema.com/country/latvia.html title=Latvia>Latvia</a></li><li><a href=https://plateformecinema.com/g/country/south-korea.html title="South Korea">South Korea</a></li><li><a href=https://plateformecinema.com/country/colombia.html title=Colombia>Colombia</a></li><li><a href=https://plateformecinema.com/country/spain.html title=Spain>Spain</a></li><li><a href=https://plateformecinema.com/country/chile.html title=Chile>Chile</a></li></ul><div class=clearfix></div></div></li><li><a href=https://plateformecinema.com/movie/filter/movies.html title=Movies><i class=icon-movie_creation></i><span class=li-text>Movies</span></a></li><li><a href=https://plateformecinema.com/movie/filter/series.html title=TV-Series><i class=icon-live_tv></i><span class=li-text>TV-Series</span></a></li><li><a href=https://plateformecinema.com/top-imdb/all.html title="Top IMDb"><i class=icon-golf32></i><span class=li-text>Top IMDb</span></a></li></ul><div class=clearfix></div></div><div id=top-user><div class="top-user-content guest"><a class=guest-login href=javascript:void(0) title=Login><i class=icon-profile27></i> LOGIN</a></div></div><div id=search><div class=search-content><input autocomplete=off class="form-control search-input" name=keyword placeholder=Searching... type=text><div id=token-search></div><a class=search-submit href=javascript:void(0) onclick=searchMovie() title=Search><i class="fa fa-search"></i></a><div class=search-suggest style=display:none></div></div></div><div class=clearfix></div></div></header><div class=header-pad></div><div class=page-detail id=main data-mode=movie><div id=cover class=page-cover style=background-image:url(https://img.cdno.my.id/cover/w_1200/h_500/downsizing-23140.jpg)></div><div class=container><div class=pad></div><div class="main-content main-detail"><div class=md-top><div id=bread><ol class=breadcrumb itemscope itemtype=https://plateformecinema.com/BreadcrumbList><li itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a href=/ itemprop=item title=Home><span itemprop=name>Home</span></a>
<meta content="1" itemprop=position></li><li itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a href=/movie/filter/movies.html itemprop=item title=Streamit><span itemprop=name>streamit</span></a>
<meta content="2" itemprop=position></li><li class=active itemprop=itemListElement itemscope itemtype=https://schema.org/ListItem><a href=# itemprop=item title=Downsizing><span itemprop=name>Downsizing</span></a>
<meta content="3" itemprop=position></li></ol></div><div id=player-area class=collapse><div class=pa-main><div id=media-player class="cssload-2x cssload-center" style=height:500px;background:#000><div class=cssload><span></span></div></div><div id=content-embed class="cssload-2x cssload-center" style=display:none><div id=embed-loading class=cssload><span></span></div><iframe id=iframe-embed width=100% height=500 scrolling=no frameborder=0 src allowfullscreen webkitallowfullscreen=true mozallowfullscreen=true></iframe></div><div id=bar-player><a class="btn bp-btn-light"><i class="fa fa-lightbulb-o"></i> <span></span></a>
<a id=favorite data-movie=23140 data-act=added class="btn bp-btn-like" href=javascript:void(0) title="Add to favorite"><i class=icon-favorite></i> Favorite
</a><a class="btn bp-btn-auto"><i class="fa fa-step-forward"></i>
<span>Auto next: </span></a><a class="btn bp-btn-report" style=color:#fff000;float:right><i class="fa fa-warning"></i> Report</a><div class=clearfix></div></div></div><div class=pa-server><div class=pas-header><div class=pash-title><i>Playing on: </i><span id=tsrv class="playing-on label label-pink"></span></div><div class=pash-choose><div class=btn-group><button type=button class="btn dropdown-toggle" data-toggle=dropdown aria-haspopup=true aria-expanded=false> List Server <span class=caret></span></button><ul class=dropdown-menu id=servers-list><li id=sv-1 data-id=1 class="server-item embed"><a title="Server 1" href=javascript:void(0)>Server 1</a></li><li id=sv-2 data-id=2 class="server-item embed"><a title="Server 2" href=javascript:void(0)>Server 2</a></li><li id=sv-5 data-id=5 class="server-item embed"><a title="Server 3" href=javascript:void(0)>Server 3</a></li></ul></div></div></div><div class=pas-list><ul id=episodes-sv-1 class=server-list-item><li class=ep-item data-index=0 data-server=1 data-id=1 id=ep-1><a href=javascript:void(0) title="Full HD"><i class=icon-play_arrow></i>Full HD</a></li></ul><ul id=episodes-sv-2 class=server-list-item><li class=ep-item data-index=0 data-server=2 data-id=1 id=ep-1><a href=javascript:void(0) title="Full HD"><i class=icon-play_arrow></i>Full HD</a></li></ul><ul id=episodes-sv-5 class=server-list-item><li class=ep-item data-index=0 data-server=5 data-id=1 id=ep-1><a href=javascript:void(0) title="Full HD"><i class=icon-play_arrow></i>Full HD</a></li></ul></div></div><div class=clearfix></div></div><div id=mv-info><div class=mvi-content><div id=btnp class=btn-watch-area><div class=bwa-content><div class=loader></div><a class=bwac-btn data-toggle=collapse href=#player-area title="Click to play"><i class="fa fa-play"></i></a></div></div><div class=mvic-desc><div class=mvic-stats><div class=block-fav id=btn-favorite><a class=btn-favorite data-act=added data-movie=23140 href=javascript:void(0) id=favorites title="Add to favorite"><i class=icon-favorite></i> Favorite</a></div><div class=block-view><i class=icon-remove_red_eye></i> 13140 views</div><div class=block-trailer><a data-target=#pop-trailer data-toggle=modal><i class=icon-videocam></i> Watch trailer</a></div></div><div class=detail-mod><div class=dm-thumb><img alt=Downsizing src=https://img.cdno.my.id/thumb/w_200/h_300/downsizing-23140.jpg title=Downsizing></div><h1>Downsizing</h1><div class=mv-rating></div><div class=mobile-btn><a class=mod-btn data-target=#pop-trailer data-toggle=modal>Trailer</a>
<a class="mod-btn mod-btn-watch" href=javascript:void(0) title="Watch Downsizing"><i class="fa fa-play mr5"></i> Watch movie</a></div><div class=mobile-view><i class=icon-remove_red_eye></i> 9,412 views</div></div><div class=desc>When humans can be shrunk to five inches tall to solve over-population, a husband and wife then decide to shrink themselves in order to simplify their lives.</div><div class=mvic-info><div class=mvici-left><p><strong>Genre:</strong>
<a href=https://plateformecinema.com/genre/comedy.html title=Comedy>Comedy</a>, <a href=https://plateformecinema.com/enre/sci-fi.html title=Sci-Fi>Sci-Fi</a>, <a href=https://plateformecinema.com//genre/drama.html title=Drama>Drama</a></p><p><strong>Actor:</strong>
<a href=https://plateformecinema.com/actor/matt-damon.html title="Matt Damon">Matt Damon</a>, <a href=https://plateformecinema.com//actor/christoph-waltz.html title="Christoph Waltz">Christoph Waltz</a>, <a href=https://plateformecinema.com/actor/hong-chau.html title="Hong Chau">Hong Chau</a></p><p><strong>Director:</strong>
Alexander Payne</p><p><strong>Country:</strong>
<a href=https://plateformecinema.com/country/united-states.html title="United States">United States</a></p></div><div class=mvici-right><p><strong>Duration:</strong> 2h 15m min</p><p><strong>Quality:</strong> <span class=quality>HD</span></p><p><strong>Release:</strong> <a href=https://plateformecinema.com//release/2017.html>2017</a></p><p><strong>IMDb:</strong> 0.6/10</p></div><div class=clearfix></div></div><div class=clearfix></div><div id=mv-keywords><strong class=mr10>Keywords:</strong>
<a href=https://ww.yesmovies.ag/tags/downsizing.html title=Downsizing><h5>Downsizing</h5></a><a href=https://ww.yesmovies.ag/tags/matt-damon.html title="Matt Damon"><h5>Matt Damon</h5></a><a href=https://ww.yesmovies.ag/tags/christoph-waltz.html title="Christoph Waltz"><h5>Christoph Waltz</h5></a></div></div><div class=clearfix></div></div></div></div><div class="movies-list-wrap mlw-related"><div class="ml-title ml-title-page"><span>You May Also Like</span></div><div class="movies-list movies-list-full" id=movies-related><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-informant-15408.html title="The Informant!"><span class=mli-quality>HD</span>
<img alt="The Informant!" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-informant-15408.jpg title="The Informant!"><div class=mli-info><h2>The Informant!</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/we-bought-a-zoo-8453.html title="We Bought a Zoo"><span class=mli-quality>HD</span>
<img alt="We Bought a Zoo" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/we-bought-a-zoo-8453.jpg title="We Bought a Zoo"><div class=mli-info><h2>We Bought a Zoo</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/contagion-6041.html title=Contagion><span class=mli-quality>HD</span>
<img alt=Contagion class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/contagion-6041.jpg title=Contagion><div class=mli-info><h2>Contagion</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-martian-5726.html title="The Martian"><span class=mli-quality>HD</span>
<img alt="The Martian" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-martian-5726.jpg title="The Martian"><div class=mli-info><h2>The Martian</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/suburbicon-22831.html title=Suburbicon><span class=mli-quality>HD</span>
<img alt=Suburbicon class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/suburbicon-22831.jpg title=Suburbicon><div class=mli-info><h2>Suburbicon</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-good-shepherd-15515.html title="The Good Shepherd"><span class=mli-quality>HD</span>
<img alt="The Good Shepherd" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-good-shepherd-15515.jpg title="The Good Shepherd"><div class=mli-info><h2>The Good Shepherd</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-legend-of-bagger-vance-15008.html title="The Legend of Bagger Vance"><span class=mli-quality>HD</span>
<img alt="The Legend of Bagger Vance" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-legend-of-bagger-vance-15008.jpg title="The Legend of Bagger Vance"><div class=mli-info><h2>The Legend of Bagger Vance</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/syriana--13136.html title=Syriana><span class=mli-quality>HD</span>
<img alt=Syriana class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/syriana--13136.jpg title=Syriana><div class=mli-info><h2>Syriana</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-brothers-grimm-13014.html title="The Brothers Grimm"><span class=mli-quality>HD</span>
<img alt="The Brothers Grimm" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-brothers-grimm-13014.jpg title="The Brothers Grimm"><div class=mli-info><h2>The Brothers Grimm</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/the-adjustment-bureau-13003.html title="The Adjustment Bureau"><span class=mli-quality>HD</span>
<img alt="The Adjustment Bureau" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-adjustment-bureau-13003.jpg title="The Adjustment Bureau"><div class=mli-info><h2>The Adjustment Bureau</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://ww.yesmovies.ag/movie/behind-the-candelabra-12817.html title="Behind the Candelabra"><span class=mli-quality>HD</span>
<img alt="Behind the Candelabra" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/behind-the-candelabra-12817.jpg title="Behind the Candelabra"><div class=mli-info><h2>Behind the Candelabra</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/the-rainmaker-12324.html title="The Rainmaker"><span class=mli-quality>HD</span>
<img alt="The Rainmaker" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/the-rainmaker-12324.jpg title="The Rainmaker"><div class=mli-info><h2>The Rainmaker</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/hereafter-11942.html title=Hereafter><span class=mli-quality>HD</span>
<img alt=Hereafter class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/hereafter-11942.jpg title=Hereafter><div class=mli-info><h2>Hereafter</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com//movie/green-zone-10202.html title="Green Zone"><span class=mli-quality>HD</span>
<img alt="Green Zone" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/green-zone-10202.jpg title="Green Zone"><div class=mli-info><h2>Green Zone</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/g/movie/promised-land-9349.html title="Promised Land"><span class=mli-quality>HD</span>
<img alt="Promised Land" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/promised-land-9349.jpg title="Promised Land"><div class=mli-info><h2>Promised Land</h2></div></a></div><div class=ml-item><a class=ml-mask href=https://plateformecinema.com/movie/spirit-stallion-of-the-cimarron-7264.html title="Spirit: Stallion of the Cimarron"><span class=mli-quality>HD</span>
<img alt="Spirit: Stallion of the Cimarron" class="thumb mli-thumb lazy" data-original=https://img.cdno.my.id/thumb/w_200/h_300/spirit-stallion-of-the-cimarron-7264.jpg title="Spirit: Stallion of the Cimarron"><div class=mli-info><h2>Spirit: Stallion of the Cimarron</h2></div></a></div></div></div></div></div></div><div aria-hidden=true aria-labelledby=myModalLabel class="modal fade modal-cuz modal-trailer" id=pop-trailer role=dialog tabindex=-1><div class=modal-dialog><div class=modal-content><div class=modal-header><button aria-label=Close class=close data-dismiss=modal type=button><i class="fa fa-close"></i></button><h4 class=modal-title id=myModalLabel>Trailer: Downsizing</h4></div><div class=modal-body><div class=modal-body-trailer><iframe allowfullscreen frameborder=0 height=315 id=iframe-trailer src width=100%></iframe></div></div></div></div></div><footer><div id=footer><div class=container><div class=row><div class="col-sm-1 footer-block1"></div><div class="col-sm-2 footer-block footer-block2"><p><a href=https://plateformecinema.com//genre/action.html title=Action>Action</a></p><p><a hrefhttps://plateformecinema.com/genre/adventure.html title=Adventure>Adventure</a></p><p><a href=https://plateformecinema.com/genre/animation.html title=Animation>Animation</a></p><p><a href=https://plateformecinema.com/genre/biography.html title=Biography>Biography</a></p><p><a href=https://yesmovies.ag/genre/comedy.html title=Comedy>Comedy</a></p><p><a href=https://plateformecinema.com/genre/costume.html title=Costume>Costume</a></p><p><a href=https://yesmovies.ag/genre/crime.html title=Crime>Crime</a></p></div><div class="col-sm-2 footer-block footer-block3"><p><a href=https://yesmovies.ag/genre/documentary.html title=Documentary>Documentary</a></p><p><a href=https://plateformecinema.com/genre/drama.html title=Drama>Drama</a></p><p><a href=https://plateformecinema.com/genre/family.html title=Family>Family</a></p><p><a href=https://plateformecinema.com/genre/fantasy.html title=Fantasy>Fantasy</a></p><p><a href=https://plateformecinema.com/genre/history.html title=History>History</a></p><p><a href=https://plateformecinema.com/genre/horror.html title=Horror>Horror</a></p><p><a href=https://plateformecinema.com/genre/kungfu.html title=Kungfu>Kungfu</a></p></div><div class="col-sm-2 footer-block footer-block4"><p><a href=https://plateformecinema.com/genre/musical.html title=Musical>Musical</a></p><p><a href=https://plateformecinema.com/genre/mystery.html title=Mystery>Mystery</a></p><p><a href=https://plateformecinema.com/genre/mythological.html title=Mythological>Mythological</a></p><p><a href=https://plateformecinema.com/genre/psychological.html title=Psychological>Psychological</a></p><p><a hrefhttps://plateformecinema.com/genre/romance.html title=Romance>Romance</a></p><p><a href=https://plateformecinema.com/genre/sci-fi.html title=Sci-Fi>Sci-Fi</a></p><p><a href=https://plateformecinema.com/genre/sitcom.html title=Sitcom>Sitcom</a></p></div><div class="col-sm-2 footer-block footer-block5"><p><a href=https://plateformecinema.com/genre/sport.html title=Sport>Sport</a></p><p><a href=https://plateformecinema.com/genre/thriller.html title=Thriller>Thriller</a></p><p><a href=https://plateformecinema.com/genre/tv-show.html title=TV-Show>TV-Show</a></p><p><a href=https://plateformecinema.com/genre/war.html title=War>War</a></p><p><a href=https://plateformecinema.com/country/united-states.html title="United States">United States</a></p><p><a href=https://plateformecinema.com//country/korea.html title=Korea>Korea</a></p><p><a href=https://plateformecinema.com/country/japan.html title=Japan>Japan</a></p></div><div class="col-sm-2 footer-block footer-block6"><p><a href=https://plateformecinema.com/country/hongkong.html title=HongKong>HongKong</a></p><p><a href=https://plateformecinema.com/country/france.html title=France>France</a></p><p><a href=https://plateformecinema.com/country/asia.html title=Asia>Asia</a></p><p><a href=https://plateformecinema.com/country/thailand.html title=Thailand>Thailand</a></p><p><a href=https://plateformecinema.com/country/united-kingdom.html title="United Kingdom">United Kingdom</a></p><p><a href=https://plateformecinema.com/country/india.html title=India>India</a></p><p><a href=https://plateformecinema.com/country/international.html title=International>International</a></p></div><div class="col-sm-1 footer-block7"></div><div class=clearfix></div></div><div id=copyright><p><img alt=plateformecinema.com/ class=mv-ft-logo src=/images/logo-footer.png></p><p>Copyright © 2022 <a href=https://plateformecinema.com/ title=plateformecinema>plateformecinema</a>. All rights reserved.</p><p style=font-size:11px;line-height:14px>Disclaimer: This site does not store any files on its server.
All contents are provided by non-affiliated third parties.</p></div><div id=footer-social><a class="fs-icon fs-facebook" href=#><i class="fa fa-facebook"></i></a> <a class="fs-icon fs-twitter" href=#><i class="fa fa-twitter"></i></a> <a class="fs-icon fs-google" href=#><i class="fa fa-google-plus"></i></a></div><div id=footer-menu><a href=https://plateformecinema.com/terms.html title="Privacy Policy">Terms & Privacy
Policy</a> <a href=https://plateformecinema.com/dmca.html title=DMCA>DMCA</a></div></div></div></footer></div><div class=clearfix></div><script src=/js/jquery-1.9.1.min.js type=text/javascript></script><script src=/js/js.cookie.min.js type=text/javascript></script><script src=/js/base64.min.js type=text/javascript></script><script src=/js/bootstrap.min.js type=text/javascript></script><script src=/js/jquery.lazyload.js type=text/javascript></script><script src=/js/jquery.hover-intent.js type=text/javascript></script><script src=/js/jquery.qtip.min.js type=text/javascript></script><script src=/js/perfect-scrollbar.jquery.min.js type=text/javascript></script><script src=/js/detectmobilebrowser.js type=text/javascript></script><script src=/js/slide.min.js type=text/javascript></script><script src=/js/main.js type=text/javascript></script><script type=text/javascript src=https://ssl.p.jwpcdn.com/player/v/8.7.6/jwplayer.js></script><script type=text/javascript src=/js/player.js></script><script type=text/javascript>$(document).ready(function(){$("img.lazy").lazyload({effect:"fadeIn"})})</script><script data-cfasync=false src="//d1e28xq8vu3baf.cloudfront.net/?vqxed=762059"></script><script>document.onreadystatechange=()=>{if(document.readyState==="complete"){const n=setInterval(e,1e3),t=document.getElementsByName("keyword")[0];function e(){const e=document.querySelector("body > div:last-of-type"),t=window.getComputedStyle(e);t&&(t.zIndex>1e3||t.display==="block")&&(e.style.zIndex=0,e.style.display="none",clearInterval(n))}t.addEventListener("pointerdown",()=>{t.focus(),e()})}}</script></body></html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>htnml Events </title>
</head>
<body style="background-color: #414141; color: aliceblue;">
    <h2>Amazing image</h2>
    <div >
        <ul id="images">
            <li><img width="200px" id="photoshop" src="https://images.pexels.com/photos/3561339/pexels-photo-3561339.jpeg?auto=compress&cs=tinysrgb&w=1600&lazy=load" alt="photoshop"></li>
            <li><img width="200px" id="japan" src="https://images.pexels.com/photos/3532553/pexels-photo-3532553.jpeg?auto=compress&cs=tinysrgb&w=1600&lazy=load" alt=""></li>
            <li><img width="200px" id="river" src="https://images.pexels.com/photos/3532551/pexels-photo-3532551.jpeg?auto=compress&cs=tinysrgb&w=1600&lazy=load" alt=""></li>
            <li><img width="200px" id="owl" src="https://images.pexels.com/photos/3532552/pexels-photo-3532552.jpeg?auto=compress&cs=tinysrgb&w=1600&lazy=load" alt="" ></li>
            <li><img width="200px" id="prayer" src="https://images.pexels.com/photos/2522671/pexels-photo-2522671.jpeg?auto=compress&cs=tinysrgb&w=1600&lazy=load" alt=""></li>
            <li><a style="color: aliceblue;" href="https://google.com" id="google">Google</a></li>
        </ul>
   </div>
</body>
<script>
    // document.getElementById('owl').onclick = function(){
    //     alert("owl clicked")
    // }

     // attachEvent()
    // jQuery - on

    // type, timestamp, defaultPrevented
    // target, toElement, srcElement, currentTarget,
    // clientX, clientY, screenX, screenY
    // altkey, ctrlkey, shiftkey, keyCode

    // document.getElementById('images').addEventListener('click', function(e){
    //     console.log("clicked inside the ul");
    // }, false)

    // document.getElementById('owl').addEventListener('click', function(e){
    //     console.log("owl clicked");
    //     e.stopPropagation()
    // }, false)
    
    // document.getElementById('google').addEventListener('click',function(e){
    //     e.preventDefault();
    //     e.stopPropagation()
    //     console.log("google clicked");
    // }, false)
   
    
    document.querySelector('#images').addEventListener('click', function(e){
        if (e.target.tagName === 'IMG') { // checks if image clicked than remove only 
           
            let removeIt = e.target.parentNode
            removeIt.remove()
        }
    
        
    })
    
    //removeIt.parentNode.removeChild(removeIt)
</script>
</html>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Alertas com Sessions</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        .notice {
            display: none;
            padding: 10px;
            margin: 10px auto;
            width: 300px;
            border-radius: 5px;
            text-align: center;
        }
        .notice-success {
            background-color: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        .notice-error {
            background-color: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
    </style>
</head>
<body>
    <div id="notice-success" class="notice notice-success">
        <?= $_SESSION['success'] ?? '' ?>
    </div>
    <div id="notice-error" class="notice notice-error">
        <?= $_SESSION['error'] ?? '' ?>
    </div>

    <script>
        $(document).ready(function () {
            <?php if (isset($_SESSION['success'])): ?>
                $('#notice-success').fadeIn();
                setTimeout(function () {
                    $('#notice-success').fadeOut();
                }, 5000);
            <?php unset($_SESSION['success']); endif; ?>

            <?php if (isset($_SESSION['error'])): ?>
                $('#notice-error').fadeIn();
                setTimeout(function () {
                    $('#notice-error').fadeOut();
                }, 5000);
            <?php unset($_SESSION['error']); endif; ?>
        });
    </script>
</body>
</html>
class ContainsExample{
public static void main(String args[]){
String name="what do you know about me";
System.out.println(name.contains("do you know"));
System.out.println(name.contains("about"));
System.out.println(name.contains("hello"));
}}
This is LolSeeks alt account, i cant return my game to this account!
<?php
/**
 * Generate a random string, using a cryptographically secure 
 * pseudorandom number generator (random_int)
 * 
 * For PHP 7, random_int is a PHP core function
 * For PHP 5.x, depends on https://github.com/paragonie/random_compat
 * 
 * @param int $length      How many characters do we want?
 * @param string $keyspace A string of all possible characters
 *                         to select from
 * @return string
 */
function random_str(
    $length,
    $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
) {
    $str = '';
    $max = mb_strlen($keyspace, '8bit') - 1;
    if ($max < 1) {
        throw new Exception('$keyspace must be at least two characters long');
    }
    for ($i = 0; $i < $length; ++$i) {
        $str .= $keyspace[random_int(0, $max)];
    }
    return $str;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chai aur code | DOM</title>
</head>
<body style="background-color: #212121; color: #fff;">
    <ul class="language">
        <li>Javascript</li>
    </ul>
</body>
<script>
    function addLanguage(langName){
        const li = document.createElement('li');
        li.innerHTML = `${langName}`
        document.querySelector('.language').appendChild(li)
    }
    addLanguage("python")
    addLanguage("typescript")

    function addOptiLanguage(langName){
        const li = document.createElement('li');
        li.appendChild(document.createTextNode(langName))
        document.querySelector('.language').appendChild(li)
    }
    addOptiLanguage('golang')

    //Edit
    const secondLang = document.querySelector("li:nth-child(2)")
    console.log(secondLang);
    //secondLang.innerHTML = "Mojo"
    const newli = document.createElement('li')
    newli.textContent = "Mojo"
    secondLang.replaceWith(newli)

    //edit
    const firstLang = document.querySelector("li:first-child")
    firstLang.outerHTML = '<li>TypeScript</li>'

    //remove
    const lastLang = document.querySelector('li:last-child')
    lastLang.remove()


</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>chai or code </title>
</head>
<body style="background-color: black;">
    



</body>
<script>
    //// creating element by javascript in html 
    const div = document.createElement('div');
    console.log(div);
    div.className = "main" 
    div.id = "hero" // giving id 
    div.setAttribute('title', "generate title") // making value 
    div.style.backgroundColor = "green" // styling 
    div.innerText = "chai or code "
    document.body.appendChild(div)
</script>
</html>
import React, { useState, useEffect } from "react";
import { FaMedal } from "react-icons/fa";
import axios from "axios";
import Apis from "../../APIs";
import { useAuth } from "../Auth/AuthContext";
import { useNavigate } from "react-router-dom";
import { toast } from "react-toastify";
import ToastWrapper from "../../../ToastWrapper";
import "react-toastify/dist/ReactToastify.css";

const See360Assessment = () => {
  const { user, setUser } = useAuth();
  const navigate = useNavigate();
  const [questions, setQuestions] = useState([]);
  const [answers, setAnswers] = useState([]);
  const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);
  const [result, setResult] = useState(false);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);
  const [assessmentId, setAssessmentId] = useState(null);
  const [redirectPage, setRedirectPage] = useState(null);

  useEffect(() => {
    const fetchQuestions = async () => {
      try {
        const response = await axios.get(Apis.See360_QUESTION_API);
        const fetchedQuestions = response.data;

        const savedProgress = JSON.parse(localStorage.getItem("assessmentProgress")) || {};
        const { savedAnswers = [], savedQuestionIndex = 0 } = savedProgress;

        setQuestions(fetchedQuestions);
        setAnswers(savedAnswers.length ? savedAnswers : fetchedQuestions.map(() => null));
        setCurrentQuestionIndex(savedQuestionIndex);
        setLoading(false);
      } catch (err) {
        console.error("Error fetching questions:", err);
        setError("Failed to load questions. Please try again later.");
        setLoading(false);
      }
    };

    fetchQuestions();
  }, []);

  const saveProgress = (newAnswers, newQuestionIndex) => {
    const progress = {
      savedAnswers: newAnswers,
      savedQuestionIndex: newQuestionIndex,
    };
    localStorage.setItem("assessmentProgress", JSON.stringify(progress));
  };

  const handleOptionSelect = (oIndex) => {
    const qIndex = currentQuestionIndex;
    const optionId = questions[qIndex].options[oIndex]._id;
    const newAnswers = [...answers];
    newAnswers[qIndex] = optionId;
    setAnswers(newAnswers);
    saveProgress(newAnswers, qIndex);
  };

  const handleNextQuestion = () => {
    if (!answers[currentQuestionIndex]) {
      toast.error("Please select an option before moving to the next question.");
      return;
    }

    const nextIndex = currentQuestionIndex + 1;
    if (nextIndex < questions.length) {
      setCurrentQuestionIndex(nextIndex);
      saveProgress(answers, nextIndex);
    } else {
      handleSubmit();
    }
  };

  const handleSubmit = async () => {
    setLoading(true);

    const formattedResponses = questions.map((question, qIndex) => ({
      questionId: question._id,
      answered: {
        optionId: answers[qIndex],
      },
    }));

    const payload = {
      userId: user._id,
      responses: formattedResponses,
    };

    try {
      const response = await axios.post(Apis.See360_ASSESSMENT_API, payload);
      const recordId = response.data._id;
      setAssessmentId(recordId);

      let calculatedRedirectPage = "/Pdf";
      setRedirectPage(calculatedRedirectPage);

      if (user.feedbackStatus === "newUser") {
        const updatedUserData = { feedbackStatus: "feedbackPending" };
        await axios.put(`${Apis.See360_USER_API}/${user._id}`, updatedUserData);
      }

      const pdfName = calculatedRedirectPage.replace("/", "");
      const updatedPdfAccess = [...user.pdfAccess, pdfName];
      setUser({ ...user, pdfAccess: updatedPdfAccess });
      await axios.put(
        `${Apis.See360_USER_API}/${user._id}`,
        { pdfAccess: updatedPdfAccess },
        {
          headers: {
            Authorization: `Bearer ${localStorage.getItem("token")}`,
          },
        }
      );

      localStorage.removeItem("assessmentProgress");
    } catch (error) {
      console.error("Error during assessment submission process:", error);
      toast.error("An error occurred while submitting the assessment. Please try again.");
    } finally {
      setResult(true);
      setLoading(false);
    }
  };

  const handleOkClick = async () => {
    const getUser = await axios.get(`${Apis.See360_USER_API}/${user._id}`, {
      headers: {
        Authorization: `Bearer ${localStorage.getItem("token")}`,
      },
    });
    const latestUserData = getUser.data;

    setUser(latestUserData);
    if (redirectPage) {
      navigate(redirectPage, { state: { assessmentId } });
    } else {
      toast.error("PDF page could not be determined.");
    }
  };

  if (loading) {
    return (
      <div className="min-h-screen w-full flex items-center justify-center bg-primary-gradient">
        <l-infinity
          size="200"
          stroke="4"
          stroke-length="0.15"
          bg-opacity="0.1"
          speed="1.3"
          color="white"
        ></l-infinity>
      </div>
    );
  }

  if (error) {
    return (
      <section className="min-h-screen w-full bg-primary-gradient flex items-center justify-center">
        <div className="text-white text-2xl">{error}</div>
      </section>
    );
  }

  return (
    <>
      <section className="min-h-screen w-full bg-primary-gradient flex flex-col items-center justify-center p-5">
        {result ? (
          <div className="min-h-[400px] w-80 md:w-[400px] rounded-lg bg-secondary p-5 flex items-center justify-center flex-col gap-5">
            <h2 className="text-3xl text-center">
              Thank you for giving the assessment
            </h2>
            <h2 className="text-3xl text-center">To See Your Result Click Ok</h2>
            <FaMedal className="text-4xl text-yellow-400" />
            <button
              onClick={handleOkClick}
              className="h-10 w-full rounded-lg bg-green-500 text-white hover:bg-green-700"
            >
              Ok
            </button>
          </div>
        ) : (
          <>
            <div className="w-screen max-w-[90%] md:max-w-[900px] rounded-lg bg-secondary p-5">
              <h2 className="font-bold text-xl flex items-center justify-center">
                SEE 360 Biz Scan Assessment
              </h2>
            </div>
            <div className="w-screen max-w-[90%] md:max-w-[900px] mt-5 rounded-lg bg-secondary p-5">
              <div className="text-lg text-black font-bold mb-3 flex items-center justify-center">
                {currentQuestionIndex + 1} / {questions.length}
              </div>
              <h3 className="font-semibold text-lg mb-3">
                {currentQuestionIndex + 1}. {questions[currentQuestionIndex].mainQuestion}
              </h3>
              <div className="flex flex-col gap-3">
                {questions[currentQuestionIndex].options.map((option, oIndex) => (
                  <div
                    key={option._id}
                    className={`cursor-pointer p-3 border rounded-lg ${
                      answers[currentQuestionIndex] === option._id
                        ? "bg-green-500 text-white"
                        : "hover:bg-gray-100"
                    }`}
                    onClick={() => handleOptionSelect(oIndex)}
                  >
                    {option.option}
                  </div>
                ))}
              </div>
              <div className="mt-5 flex justify-end">
                <button
                  onClick={handleNextQuestion}
                  className="h-10 w-32 rounded-lg bg-green-500 text-white hover:bg-green-700"
                >
                  Next
                </button>
              </div>
            </div>
          </>
        )}
      </section>
      <ToastWrapper />
    </>
  );
};

export default See360Assessment;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body style= "background-color: black ; color: aliceblue;">
    <div class = "parent">
        <div class = 'day'>MONDY</div>
        <div class = 'day'>TUESDY</div>
        <div class = 'day'>WEDNESDY</div>
        <div class = 'day'>THURSDY</div>
        <div class = 'day'>FRIDY</div>
    </div>
</body>
<script>
    ///// catching children from parents ////////////
    const parent = document.querySelector('.parent')
    console.log(parent);  
    /*<div class = "parent">
        <div class = 'day'>MONDY</div>
        <div class = 'day'>TUESDY</div>
        <div class = 'day'>WEDNESDY</div>
        <div class = 'day'>THURSDY</div>
        <div class = 'day'>FRIDY</div>
    </div>*/
    console.log(parent.children); // html collection as output 
    console.log(parent.children[1]); //TUESDAY AS A OUTPUT 
     
     for (let i = 0; i < parent.children.length; i++) {
       console.log(parent.children[i].innerHTML);
       /* MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIIDAY */  
    }
    parent.children[1].style.color="orange"; // TUESDAY COBNVERTED TO YELLOW
    console.log(parent.firstElementchild);
    console.log(parent.lastElementchild);


    ///// catching  parent from children ////////////
    const dayone = document.querySelector('.day');
    console.log(dayOne);
    console.log(dayOne.parentElement);
    console.log(dayOne.parentElemenSibling);
    
</script>
</html> 
$ curl -OL https://github.com/pytube/pytube/tarball/master
# optionally, zipball is also available (for Windows users).
The main purpose of creating a hotel reservation system is to streamline and optimize hotel operations more efficiently, improve the guest experience, and increase overall profits from their business. Here we listed out the breakdown key points in an easily understandable way

Centralized operations
◦ Reservation Management: From this category, you'll get complete reservation management that effectively manages your platform for your users, handling bookings, cancellations, and modifications efficiently.
◦ Front Desk Operations: Streamline check-in/check-out, room assignments, and guest registration.
◦ Housekeeping Management: Track room status, assign cleaning tasks, and coordinate maintenance.

Enhanced Guest Experience:

◦ Personalized Service: Gather guest preferences and tailor services accordingly.
◦ Improved Communication: Facilitate communication with guests through various channels.
◦ Loyalty Programs: Manage loyalty programs and reward repeat guests.

Increased Efficiency:

◦ Automation: Automate repetitive tasks, freeing up staff for other duties.
◦ Reduced Errors: Minimize human error in data entry and other tasks.
◦ Improved Communication: Facilitate better communication between departments.

If you have any plans to uplift your business in all aspects, then you choose the best hotel booking engine script to effectively manage your hotel business.


The `@track` decorator in Lightning Web Components (LWC) is used to make a property reactive, meaning that changes to the property will cause the component to re-render. However, `@track` is used for internal state management within the component itself and is not intended for exposing properties to parent or other components.

Here’s a comparison:

- `@api`: Used to expose properties and methods to parent components. It makes the property or method public.
- `@track`: Used to make properties reactive within the component. It is used for internal state management.

Example using `@track`:

```javascript
import { LightningElement, track } from 'lwc';

export default class MyComponent extends LightningElement {
    @track internalState = {}; // This property is reactive within the component

    handleChange(event) {
        this.internalState.value = event.target.value;
    }
}
```

In this example, `internalState` is a reactive property that will cause the component to re-render when its value changes, but it is not exposed to parent components.

Use `@api` when you need to expose properties or methods to parent components, and use `@track` for managing internal state that should trigger re-renders when changed.










import { LightningElement, track } from 'lwc';

export default class MyComponent extends LightningElement {
    @track internalState = {}; // This property is reactive within the component

    handleChange(event) {
        this.internalState.value = event.target.value;
    }
}
const turnOverDataList =[
    {
      "turnover_data": [
        {
          "debit_amt": 3089315000,
          "credit_amt": 1663958000
        }
      ]
    },
    {
      "turnover_data": [
        {
          "debit_amt": 215278167000,
          "credit_amt": 272487858350
        }
      ]
    },
    {
      "turnover_data": [
        {
          "debit_amt": 30414730000,
          "credit_amt": 39515585500
        }
      ]
    }
  ]


let { debitAmount, creditAmount } = turnOverDataList.reduce((acc, x) => {
                acc.debitAmount += x.turnover_data[0].debit_amt;
                acc.creditAmount += x.turnover_data[0].credit_amt;
                return acc;
            }, { debitAmount: 0, creditAmount: 0 });

 debitAmount = debitAmount > 0 ? debitAmount : 1;

     const   previousRTP = creditAmount / debitAmount * 100;

console.log(previousRTP)
add_filter( 'pcp_hr_grid_first_item_content_limit', function($limit, $shortcode_id ){
	if ( 3842 == $shortcode_id ){ // Update 2923 with your shortcode id
		$limit = 99;
	}
	return $limit;
}, 10, 2);
{!$CustomMetadata.APINameoftheCMDT__mdt.APINameoftheSpecificCMDT.APINameoftheField}

Example:
{!$CustomMetadata.Generic_Configuration__mdt.Cancelled_Event_Owner.Value__c}
add_action('wpcf7_mail_sent', 'save_cf7_form_data');

function save_cf7_form_data($contact_form) {
    global $wpdb;

    $form_id = $contact_form->id();
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $form_data = $submission->get_posted_data();
        $table_name = 'wpyy_cf7_submissions'; // Use your custom table name directly

        $wpdb->insert(
            $table_name,
            [
                'form_id' => $form_id,
                'form_data' => maybe_serialize($form_data),
            ],
            [
                '%d',
                '%s'
            ]
        );
    }
}


add_action('wpcf7_mail_sent', 'add_submission_to_layout');


function add_submission_to_layout($contact_form) {
    global $wpdb;

    // Get form data
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();

        // Define variables for all fields
        $name = isset($data['Full-name']) ? $data['Full-name'] : 'Unknown';
        $sport = isset($data['Sport']) ? $data['Sport'] : 'Unknown';
        $email_address = isset($data['Email-address']) ? $data['Email-address'] : 'Unknown';
        $phone_Number = isset($data['Phone-Number']) ? $data['Phone-Number'] : 'Unknown';
        $nick_name = isset($data['Nick-name']) ? $data['Nick-name'] : 'Unknown';
        $player_number = isset($data['Player-Number']) ? $data['Player-Number'] : 'Unknown';
        $graduation_year = isset($data['Graduation-year']) ? $data['Graduation-year'] : 'Unknown';
        $team_club = isset($data['Team-club']) ? $data['Team-club'] : 'Unknown';
        $years_playing = isset($data['Years-playing']) ? $data['Years-playing'] : 'Unknown';
        $stats = isset($data['Stats']) ? $data['Stats'] : 'Unknown';
        $positions = isset($data['Positions']) ? $data['Positions'] : 'Unknown';
        $awards_achievements = isset($data['Awards-Achievements']) ? $data['Awards-Achievements'] : 'Unknown';
        $tiktok_link = isset($data['Tiktok-link']) ? $data['Tiktok-link'] : 'Unknown';
        $instagram_link = isset($data['Instagram-link']) ? $data['Instagram-link'] : 'Unknown';  
        $twitter_link = isset($data['Twitter-link']) ? $data['Twitter-link'] : 'Unknown';
        $imlca_link = isset($data['IMLCA-link']) ? $data['IMLCA-link'] : 'Unknown';
        $youtube_link = isset($data['YouTube-link']) ? $data['YouTube-link'] : 'Unknown';
        $file_id = isset($data['file-upload']) ? $data['file-upload'] : '';
        $dominant_hand = isset($data['hand-dominance']) ? $data['hand-dominance'] : 'Unknown'; 
        if (isset($_POST['hand-dominance'])) {
        $dominant_hand = sanitize_text_field($_POST['hand-dominance']); // Sanitize the input
        }
        $file_url = 'https://sportmeid.com/wp-content/uploads/2024/12/player-profile.webp'; 
        if (!empty($_FILES['file-upload']['name'])) {
            $file = $_FILES['file-upload'];
            $upload_dir = wp_upload_dir();
            $file_path = $upload_dir['path'] . '/' . basename($file['name']);
            move_uploaded_file($file['tmp_name'], $file_path);

            $attachment = array(
                'guid' => $upload_dir['url'] . '/' . basename($file['name']),
                'post_mime_type' => mime_content_type($file_path),
                'post_title' => preg_replace('/\.[^.]+$/', '', basename($file['name'])),
                'post_content' => '',
                'post_status' => 'inherit'
            );

            $attachment_id = wp_insert_attachment($attachment, $file_path);
            require_once(ABSPATH . 'wp-admin/includes/image.php');
            $attachment_metadata = wp_generate_attachment_metadata($attachment_id, $file_path);
            wp_update_attachment_metadata($attachment_id, $attachment_metadata);

            $file_url = wp_get_attachment_url($attachment_id);
        }

        $player_id = uniqid();

        $new_entry = '<a href="' . site_url('/player-detail?id=' . $player_id) . '" >';
        $new_entry .= '<div class="player-card" data-name="' . esc_attr($name) . '" data-sport="' . esc_attr($sport) . '">';
        $new_entry .= '<div class="player-image">';
        $new_entry .= '<img src="' . esc_url($file_url) . '" alt="' . esc_attr($name) . '" class="player-image">';
        $new_entry .= '</div>'; 
        $new_entry .= '<div class="player-card-name">';
        $new_entry .= '<p>Name: ' . esc_html($name) . '</p>';
        $new_entry .= '<p>Sport: ' . esc_html($sport) . '</p>';
        $new_entry .= '<div class="player-image-button">';
        $new_entry .= '</div>';
        $new_entry .= '</div>';
        $new_entry .= '</div>';
        $new_entry .= '</a>';

        $existing_data = get_option('players_data', []);
        $existing_data[$player_id] = array(
            'name' => $name,
            'sport' => $sport,
            'email_address' => $email_address,
            'phone_Number' => $phone_Number,
            'nick_name' => $nick_name,
            'player_number' => $player_number,
            'graduation_year' => $graduation_year,
            'team_club' => $team_club,
            'years_playing' => $years_playing,
            'positions' => $positions,
            'dominant_hand' => $dominant_hand,
            'stats' => $stats,
            'awards_achievements' => $awards_achievements,
            'tiktok_link' => $tiktok_link,
            'instagram_link' => $instagram_link,
            'twitter_link' => $twitter_link,
            'youtube_link' =>  $youtube_link,
            'imlca_link' =>   $imlca_link,
            'file_url' => $file_url
        );

        update_option('players_data', $existing_data);

        $existing_layout = get_option('players_layout', []);
        $existing_layout[] = $new_entry;
        update_option('players_layout', $existing_layout);
    }
}


function render_players_layout() {
    $layout = get_option('players_layout', []);

    if (!empty($layout)) {
        $output = '<div class="players-pof-col">';
        $counter = 0;

        foreach ($layout as $entry) {
            $output .= $entry;

            $counter++;
            if ($counter % -1 === 0) {
                $output .= '</div><div class="players-pof-col">';
            }
        }

        $output .= '</div>';
        echo $output;
    } else {
        echo '<p>No players data found.</p>';
    }
}
function delete_form_submission() {
    if (isset($_GET['delete_submission']) && isset($_GET['entry_id'])) {
        $submission_id = intval($_GET['entry_id']);
        if (is_user_logged_in() && user_can(current_user(), 'delete_posts')) {
            global $wpdb;

            $wpdb->delete($wpdb->prefix . 'flamingo_inbound_messages', array('id' => $submission_id));
        }
    }
}
add_action('wp', 'delete_form_submission');



add_shortcode('players_layout', 'render_players_layout');


add_action('template_redirect', 'handle_player_detail_page');

function handle_player_detail_page() {
    if (isset($_GET['id']) && is_page('player-detail')) {
        $player_id = sanitize_text_field($_GET['id']);
        $players_data = get_option('players_data', []);

        if (isset($players_data[$player_id])) {
            $player = $players_data[$player_id];

            // Display player detail page
            include get_template_directory() . '/player-detail-template.php';
            exit; // Prevent further processing
        } else {
            wp_die('Player not found.');
        }
    }
}


add_filter('wpcf7_form_tag', 'set_default_dropdown_value', 10, 2);

function set_default_dropdown_value($tag, $unused) {
    if ($tag['name'] === 'hand-dominance') {
        $submitted_value = isset($_POST['hand-dominance']) ? $_POST['hand-dominance'] : '';
        foreach ($tag['raw_values'] as &$value) {
            if ($value === $submitted_value) {
                $value = $value . ' default:1';
            }
        }
    }
    return $tag;
}


function sports_textarea_field() {
    ob_start();
    ?>
    <div id="sports-wrapper" class="text-fild">
        <textarea id="sports-textarea" name="Sport" class="auto-height" placeholder="Sports will be shown here..." readonly></textarea>
        <div id="sports-input-wrapper" class="add-text-input" style="display: none;">
            <input type="text" id="sports-input" placeholder="Enter sport here..." />
        </div>
        <p id="sports-warning-message" style="color: blue; display: none; margin-top: 10px;"></p> <!-- Warning message -->
        <div class="add-buttons">
            <button type="button" id="sports-add-save-button">Add</button>
            <button type="button" id="sports-delete-last-button" style="display: none;">Delete Last</button>
        </div>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const textarea = document.getElementById('sports-textarea');
            const addSaveButton = document.getElementById('sports-add-save-button');
            const deleteButton = document.getElementById('sports-delete-last-button');
            const inputWrapper = document.getElementById('sports-input-wrapper');
            const sportsInput = document.getElementById('sports-input');
            const warningMessage = document.getElementById('sports-warning-message');
            let sportsCounter = 1; 

            function toggleDeleteButton() {
                if (textarea.value.trim() === '') {
                    deleteButton.style.display = 'none';
                } else {
                    deleteButton.style.display = 'block';
                }
            }

            function showWarning(message) {
                warningMessage.textContent = message;
                warningMessage.style.display = 'block';
            }

            function hideWarning() {
                warningMessage.textContent = '';
                warningMessage.style.display = 'none';
            }

            function autoGrowTextarea() {
                textarea.style.height = 'auto'; 
                textarea.style.height = textarea.scrollHeight + 'px'; // Corrected height adjustment
            }

            addSaveButton.addEventListener('click', function () {
                hideWarning(); 
                if (addSaveButton.textContent === 'Add') {
                    inputWrapper.style.display = 'block';
                    sportsInput.focus();
                    addSaveButton.textContent = 'Save';
                } else if (addSaveButton.textContent === 'Save') {
                    const newSport = sportsInput.value.trim();
                    if (newSport) {
                        const currentValue = textarea.value;
                        const newSportText = `Sport ${sportsCounter}: ${newSport}`;
                        textarea.value = currentValue
                            ? currentValue + '\n' + newSportText
                            : newSportText;
                        sportsInput.value = ''; 
                        sportsCounter++; 
                        inputWrapper.style.display = 'none'; 
                        addSaveButton.textContent = 'Add'; 
                        toggleDeleteButton(); 
                        autoGrowTextarea(); // Adjust height after adding new content
                    } else {
                        showWarning("Please enter a sport before saving.");
                    }
                }
            });

            deleteButton.addEventListener('click', function () {
                hideWarning(); 
                const sports = textarea.value.split('\n');
                if (sports.length === 0 || textarea.value.trim() === '') {
                    showWarning("No sports to delete.");
                    return;
                }
                sports.pop(); 
                textarea.value = sports.join('\n'); 
                sportsCounter--; 
                toggleDeleteButton(); 
                autoGrowTextarea(); // Adjust height after deleting content
            });

            textarea.addEventListener('input', autoGrowTextarea); // Adjust height on user input

            toggleDeleteButton();
            autoGrowTextarea(); // Initialize height adjustment
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('sports_field', 'sports_textarea_field');


function positions_textarea_field() {
    ob_start();
    ?>
    <div id="positions-wrapper" class="text-fild">
        <textarea id="positions-textarea" name="Positions" class="auto-height" placeholder="Positions will be shown here..." readonly></textarea>
        <div id="positions-input-wrapper" class="add-text-input" style="display: none;">
            <input type="text" id="positions-input" placeholder="Enter position here..." />
        </div>
        <p id="positions-warning-message" style="color: red; display: none; margin-top: 10px;"></p> <!-- Warning message -->
        <div class="add-buttons">
            <button type="button" id="positions-add-save-button">Add</button>
            <button type="button" id="positions-delete-last-button" style="display: none;">Delete Last</button>
        </div>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const textarea = document.getElementById('positions-textarea');
            const addSaveButton = document.getElementById('positions-add-save-button');
            const deleteButton = document.getElementById('positions-delete-last-button');
            const inputWrapper = document.getElementById('positions-input-wrapper');
            const positionInput = document.getElementById('positions-input');
            const warningMessage = document.getElementById('positions-warning-message');
            let positionCounter = 1; 

            function toggleDeleteButton() {
                if (textarea.value.trim() === '') {
                    deleteButton.style.display = 'none';
                } else {
                    deleteButton.style.display = 'block';
                }
            }

            function showWarning(message) {
                warningMessage.textContent = message;
                warningMessage.style.display = 'block';
            }

            function hideWarning() {
                warningMessage.textContent = '';
                warningMessage.style.display = 'none';
            }

            function autoGrowTextarea() {
                textarea.style.height = 'auto'; // Reset height to calculate new scrollHeight
                textarea.style.height = textarea.scrollHeight + 'px';
            }

            addSaveButton.addEventListener('click', function () {
                hideWarning(); 
                if (addSaveButton.textContent === 'Add') {
                    inputWrapper.style.display = 'block';
                    positionInput.focus();
                    addSaveButton.textContent = 'Save';
                } else if (addSaveButton.textContent === 'Save') {
                    const newPosition = positionInput.value.trim();
                    if (newPosition) {
                        const currentValue = textarea.value;
                        const newPositionText = `Position ${positionCounter}: ${newPosition}`;
                        textarea.value = currentValue
                            ? currentValue + '\n' + newPositionText
                            : newPositionText;
                        positionInput.value = ''; 
                        positionCounter++; 
                        inputWrapper.style.display = 'none'; 
                        addSaveButton.textContent = 'Add'; 
                        toggleDeleteButton(); 
                        autoGrowTextarea(); // Adjust height after adding new content
                    } else {
                        showWarning("Please enter a position before saving.");
                    }
                }
            });

            deleteButton.addEventListener('click', function () {
                hideWarning(); 
                const positions = textarea.value.split('\n');
                if (positions.length === 0 || textarea.value.trim() === '') {
                    showWarning("No positions to delete.");
                    return;
                }
                positions.pop(); 
                textarea.value = positions.join('\n'); 
                positionCounter--; 
                toggleDeleteButton(); 
                autoGrowTextarea(); // Adjust height after deleting content
            });

            textarea.addEventListener('input', autoGrowTextarea); // Adjust height on user input

            toggleDeleteButton();
            autoGrowTextarea(); // Initialize height adjustment
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('positions_field', 'positions_textarea_field');

function stats_textarea_field() {
    ob_start();
    ?>
    <div id="stats-wrapper" class="text-fild">
        <textarea id="stats-textarea" name="Stats" placeholder="Stats will be shown here..." readonly></textarea>
        <div id="input-wrapper" class="add-text-input" style="display: none;">
            <input type="text" id="stats-input" placeholder="Enter stats here..." />
        </div>
        <p id="warning-message" style="color: #fff; display: none; margin-top: 10px;"></p> <!-- Warning message -->
        <div class="add-buttons">
            <button type="button" id="add-save-stats">Add</button>
            <button type="button" id="delete-last-stats" style="display: none;">Delete Last</button>
        </div>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const textarea = document.getElementById('stats-textarea');
            const addSaveButton = document.getElementById('add-save-stats');
            const deleteButton = document.getElementById('delete-last-stats');
            const inputWrapper = document.getElementById('input-wrapper');
            const statsInput = document.getElementById('stats-input');
            const warningMessage = document.getElementById('warning-message');
            let statsCounter = 1; 
            
            function toggleDeleteButton() {
                if (textarea.value.trim() === '') {
                    deleteButton.style.display = 'none';
                } else {
                    deleteButton.style.display = 'block';
                }
            }

            function showWarning(message) {
                warningMessage.textContent = message;
                warningMessage.style.display = 'block';
            }

            function hideWarning() {
                warningMessage.textContent = '';
                warningMessage.style.display = 'none';
            }

            function autoGrowTextarea() {
                textarea.style.height = 'auto'; // Reset height to calculate new scrollHeight
                textarea.style.height = textarea.scrollHeight + 'px';
            }

            addSaveButton.addEventListener('click', function () {
                hideWarning(); 
                if (addSaveButton.textContent === 'Add') {
                    inputWrapper.style.display = 'block';
                    statsInput.focus();
                    addSaveButton.textContent = 'Save';
                } else if (addSaveButton.textContent === 'Save') {
                    const newStats = statsInput.value.trim();
                    if (newStats) {
                        const currentValue = textarea.value;
                        const newStatsText = `Stats ${statsCounter}: ${newStats}`;
                        textarea.value = currentValue
                            ? currentValue + '\n' + newStatsText
                            : newStatsText;
                        statsInput.value = ''; 
                        statsCounter++; 
                        inputWrapper.style.display = 'none'; 
                        addSaveButton.textContent = 'Add'; 
                        toggleDeleteButton(); 
                        autoGrowTextarea(); // Adjust height after adding new content
                    } else {
                        showWarning("Please enter stats before saving.");
                    }
                }
            });

            deleteButton.addEventListener('click', function () {
                hideWarning(); 
                const stats = textarea.value.split('\n');
                if (stats.length === 0 || textarea.value.trim() === '') {
                    showWarning("No stats to delete.");
                    return;
                }
                stats.pop(); 
                textarea.value = stats.join('\n'); 
                statsCounter--; 
                toggleDeleteButton(); 
                autoGrowTextarea(); // Adjust height after deleting content
            });

            textarea.addEventListener('input', autoGrowTextarea); // Adjust height on user input

            toggleDeleteButton();
            autoGrowTextarea(); // Initialize height adjustment
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('stats_field', 'stats_textarea_field');

function team_level_club_affiliation_field() {
    ob_start();
    ?>
    <div id="team-level-wrapper" class="text-fild">
        <textarea id="team-level-textarea" name="Team-club" class="auto-height" placeholder="Team Level & Club Affiliation will be shown here..." readonly></textarea>
        <div id="team-level-input-wrapper" class="add-text-input" style="display: none;">
            <input type="text" id="team-level-input" placeholder="Enter team level or club affiliation here..." />
        </div>
        <p id="team-level-warning-message" style="color: green; display: none; margin-top: 10px;"></p>
        <div class="add-buttons">
            <button type="button" id="team-level-add-save-button">Add</button>
            <button type="button" id="team-level-delete-last-button" style="display: none;">Delete Last</button>
        </div>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const textarea = document.getElementById('team-level-textarea');
            const addSaveButton = document.getElementById('team-level-add-save-button');
            const deleteButton = document.getElementById('team-level-delete-last-button');
            const inputWrapper = document.getElementById('team-level-input-wrapper');
            const teamLevelInput = document.getElementById('team-level-input');
            const warningMessage = document.getElementById('team-level-warning-message');

            function adjustTextareaHeight() {
                // Adjust the height of the textarea based on its scrollHeight
                textarea.style.height = 'auto'; // Reset height first
                textarea.style.height = textarea.scrollHeight + 'px'; // Set height to scrollHeight
            }

            function toggleDeleteButton() {
                deleteButton.style.display = textarea.value.trim() === '' ? 'none' : 'block';
            }

            function showWarning(message) {
                warningMessage.textContent = message;
                warningMessage.style.display = 'block';
            }

            function hideWarning() {
                warningMessage.style.display = 'none';
            }

            addSaveButton.addEventListener('click', function () {
                hideWarning();
                if (addSaveButton.textContent === 'Add') {
                    inputWrapper.style.display = 'block';
                    teamLevelInput.focus();
                    addSaveButton.textContent = 'Save';
                } else if (addSaveButton.textContent === 'Save') {
                    const newEntry = teamLevelInput.value.trim();
                    if (newEntry) {
                        const currentValue = textarea.value;
                        const newText = newEntry; // Correct string interpolation
                        textarea.value = currentValue ? currentValue + "\n" + newText : newText; // Concatenate new text
                        teamLevelInput.value = '';
                        inputWrapper.style.display = 'none';
                        addSaveButton.textContent = 'Add';
                        toggleDeleteButton();
                        adjustTextareaHeight(); // Adjust height after adding new content
                    } else {
                        showWarning("Please enter a value before saving.");
                    }
                }
            });

            deleteButton.addEventListener('click', function () {
                hideWarning();
                const entries = textarea.value.split('\n');
                if (entries.length === 0 || textarea.value.trim() === '') {
                    showWarning("No entries to delete.");
                    return;
                }
                entries.pop();
                textarea.value = entries.join('\n');
                toggleDeleteButton();
                adjustTextareaHeight(); // Adjust height after deleting content
            });

            // Adjust height on initial page load and when textarea content changes
            adjustTextareaHeight();
            textarea.addEventListener('input', adjustTextareaHeight);

            toggleDeleteButton();
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('team_level_club_field', 'team_level_club_affiliation_field');

function player_number_field() {
    ob_start();
    ?>
    <div id="player-number-wrapper" class="text-fild">
        <textarea id="player-number-textarea" name="Player-Number" class="auto-height" placeholder="Player Numbers will be shown here..." readonly></textarea>
        <div id="player-number-input-wrapper" class="add-text-input" style="display: none;">
            <input type="text" id="player-number-input" placeholder="Enter player number here..." />
        </div>
        <p id="player-number-warning-message" style="color: blue; display: none; margin-top: 10px;"></p>
        <div class="add-buttons">
            <button type="button" id="player-number-add-save-button">Add</button>
            <button type="button" id="player-number-delete-last-button" style="display: none;">Delete Last</button>
        </div>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const textarea = document.getElementById('player-number-textarea');
            const addSaveButton = document.getElementById('player-number-add-save-button');
            const deleteButton = document.getElementById('player-number-delete-last-button');
            const inputWrapper = document.getElementById('player-number-input-wrapper');
            const playerNumberInput = document.getElementById('player-number-input');
            const warningMessage = document.getElementById('player-number-warning-message');

            function adjustTextareaHeight() {
                // Adjust the height of the textarea based on its scrollHeight
                textarea.style.height = 'auto'; // Reset height first
                textarea.style.height = textarea.scrollHeight + 'px'; // Set height to scrollHeight
            }

            function toggleDeleteButton() {
                deleteButton.style.display = textarea.value.trim() === '' ? 'none' : 'block';
            }

            function showWarning(message) {
                warningMessage.textContent = message;
                warningMessage.style.display = 'block';
            }

            function hideWarning() {
                warningMessage.style.display = 'none';
            }

            addSaveButton.addEventListener('click', function () {
                hideWarning();
                if (addSaveButton.textContent === 'Add') {
                    inputWrapper.style.display = 'block';
                    playerNumberInput.focus();
                    addSaveButton.textContent = 'Save';
                } else if (addSaveButton.textContent === 'Save') {
                    const newEntry = playerNumberInput.value.trim();
                    if (newEntry) {
                        const currentValue = textarea.value;
                        const newText = newEntry; // Correct string concatenation
                        textarea.value = currentValue ? currentValue + "\n" + newText : newText; // Concatenate new text
                        playerNumberInput.value = '';
                        inputWrapper.style.display = 'none';
                        addSaveButton.textContent = 'Add';
                        toggleDeleteButton();
                        adjustTextareaHeight(); // Adjust height after adding new content
                    } else {
                        showWarning("Please enter a value before saving.");
                    }
                }
            });

            deleteButton.addEventListener('click', function () {
                hideWarning();
                const entries = textarea.value.split('\n');
                if (entries.length === 0 || textarea.value.trim() === '') {
                    showWarning("No entries to delete.");
                    return;
                }
                entries.pop();
                textarea.value = entries.join('\n');
                toggleDeleteButton();
                adjustTextareaHeight(); // Adjust height after deleting content
            });

            // Adjust height on initial page load and when textarea content changes
            adjustTextareaHeight();
            textarea.addEventListener('input', adjustTextareaHeight);

            toggleDeleteButton();
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('player_number_field', 'player_number_field');

function awards_achievements_field() {
    ob_start();
    ?>
    <div id="awards-achievements-wrapper" class="text-fild">
        <textarea id="awards-achievements-textarea" name="Awards-Achievements" class="auto-height" placeholder="Awards and Achievements will be shown here..." readonly></textarea>
        <div id="awards-achievements-input-wrapper" class="add-text-input" style="display: none;">
            <input type="text" id="awards-achievements-input" placeholder="Enter award or achievement here..." />
        </div>
        <p id="awards-achievements-warning-message" style="color: purple; display: none; margin-top: 10px;"></p>
        <div class="add-buttons">
            <button type="button" id="awards-achievements-add-save-button">Add</button>
            <button type="button" id="awards-achievements-delete-last-button" style="display: none;">Delete Last</button>
        </div>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const textarea = document.getElementById('awards-achievements-textarea');
            const addSaveButton = document.getElementById('awards-achievements-add-save-button');
            const deleteButton = document.getElementById('awards-achievements-delete-last-button');
            const inputWrapper = document.getElementById('awards-achievements-input-wrapper');
            const awardsAchievementsInput = document.getElementById('awards-achievements-input');
            const warningMessage = document.getElementById('awards-achievements-warning-message');

            function adjustTextareaHeight() {
                // Adjust the height of the textarea based on its scrollHeight
                textarea.style.height = 'auto'; // Reset height first
                textarea.style.height = textarea.scrollHeight + 'px'; // Set height to scrollHeight
            }

            function toggleDeleteButton() {
                deleteButton.style.display = textarea.value.trim() === '' ? 'none' : 'block';
            }

            function showWarning(message) {
                warningMessage.textContent = message;
                warningMessage.style.display = 'block';
            }

            function hideWarning() {
                warningMessage.style.display = 'none';
            }

            addSaveButton.addEventListener('click', function () {
                hideWarning();
                if (addSaveButton.textContent === 'Add') {
                    inputWrapper.style.display = 'block';
                    awardsAchievementsInput.focus();
                    addSaveButton.textContent = 'Save';
                } else if (addSaveButton.textContent === 'Save') {
                    const newEntry = awardsAchievementsInput.value.trim();
                    if (newEntry) {
                        const currentValue = textarea.value;
                        const newText = newEntry;
                        textarea.value = currentValue ? currentValue + "\n" + newText : newText; // Corrected concatenation
                        awardsAchievementsInput.value = '';
                        inputWrapper.style.display = 'none';
                        addSaveButton.textContent = 'Add';
                        toggleDeleteButton();
                        adjustTextareaHeight(); // Adjust height after adding new content
                    } else {
                        showWarning("Please enter a value before saving.");
                    }
                }
            });

            deleteButton.addEventListener('click', function () {
                hideWarning();
                const entries = textarea.value.split('\n');
                if (entries.length === 0 || textarea.value.trim() === '') {
                    showWarning("No entries to delete.");
                    return;
                }
                entries.pop();
                textarea.value = entries.join('\n');
                toggleDeleteButton();
                adjustTextareaHeight(); // Adjust height after deleting content
            });

            // Adjust height on initial page load and when textarea content changes
            adjustTextareaHeight();
            textarea.addEventListener('input', adjustTextareaHeight);

            toggleDeleteButton();
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('awards_achievements_field', 'awards_achievements_field');


<script>
document.addEventListener('DOMContentLoaded', () => {
    const fileInput = document.querySelector('input[type="file"]');
    if (fileInput) {
        fileInput.addEventListener('change', (e) => {
            let file = e.target.files[0];

            if (file) {
                let split_name = file.name.split('.');
                let randomString = Math.random().toString(36).substring(2, 8);
                let name = `playerprofileimg${randomString}.` + split_name[split_name.length - 1];
                let blob = file.slice(0, file.size, file.type);
                let new_file = new File([blob], name, { type: file.type });
                const data_transfer = new DataTransfer();
                data_transfer.items.add(new_file);
                e.target.files = data_transfer.files;
            }
        });
    } else {
        console.error("No input[type='file'] found in the DOM.");
    }
});


</script>
<?php
if (!defined('ABSPATH')) {
    exit;
}

$player = $players_data[$player_id];

get_header(); ?>


<style>
header#masthead {
  display: none;
}

footer {
  display: none;
}
</style>

<div class="back-button">
    <a href="https://sportmeid.com/view-profile/"><span><img
                src="https://sportmeid.com/wp-content/uploads/2024/12/arrow.svg"></span> Back</a>
</div>
<div class="player-detail">
    <div class="player-main-img">
            <div class="player-wrapper-img">
        <img src="<?php echo esc_url($player['file_url']); ?>" alt="<?php echo esc_attr($player['name']); ?>" />
     </div>
    </div>
    <div class="profile-container">
        <h1>Player Profile</h1>
        <table>
            <tr>
                <td>Full Name:</td>
                <td><?php echo esc_html(strtolower($player['name'])); ?></td>
            </tr>
            <tr>
                <td>Sport:</td>
                <td><?php echo nl2br(esc_html(strtolower($player['sport']))); ?></td>
            </tr>
            <tr>
                <td>Email Address:</td>
                <td><?php echo esc_html(strtolower($player['email_address'])); ?></td>
            </tr>
             <tr>
                <td>Phone Number:</td>
                <td><?php echo esc_html(strtolower($player['phone_Number'])); ?></td>
            </tr>
            <tr>
                <td>Nickname:</td>
                <td><?php echo esc_html(strtolower($player['nick_name'])); ?></td>
            </tr>
            <tr>
                <td>Player Number:</td>
                <td><?php echo nl2br(esc_html(strtolower($player['player_number']))); ?></td>
            </tr>
            <tr>
                <td>Graduation Year:</td>
                <td><?php echo esc_html(strtolower($player['graduation_year'])); ?></td>
            </tr>
            <tr>
                <td>Team Level & Team/Club Affiliation:</td>
                <td><?php echo nl2br(esc_html(strtolower($player['team_club']))); ?></td>
            </tr>
            <tr>
                <td>Years Playing/Experience:</td>
                <td><?php echo esc_html(strtolower($player['years_playing'])); ?></td>
            </tr>
            <tr>
                <td>Dominant Hand:</td>
                <td><?php echo esc_html($player['dominant_hand']); ?></td>
            </tr>
            <tr>
                <td>Stats:</td>
                <td><?php echo nl2br(esc_html(strtolower($player['stats']))); ?></td>
            </tr>
            <tr>
                <td>Positions:</td>
                <td><?php echo nl2br(esc_html(strtolower($player['positions']))); ?></td>
            </tr>
            <tr>
                <td>Sports Awards/Achievements:</td>
                <td><?php echo nl2br(esc_html(strtolower($player['awards_achievements']))); ?></td>
            </tr>
            <tr>
                <td>Social Media Links:</td>
                <td class="social-media">
                    <a href="<?php echo esc_html(strtolower($player['tiktok_link'])); ?>"><img src="https://sportmeid.com/wp-content/uploads/2024/12/tiktok.svg"></a>
                    <a href="<?php echo esc_html(strtolower($player['instagram_link'])); ?>"><img src="https://sportmeid.com/wp-content/uploads/2024/12/instagram.svg"></a>
                    <a href="<?php echo esc_html(strtolower($player['twitter_link'])); ?>"><img src="https://sportmeid.com/wp-content/uploads/2024/12/twitter.svg"></a>
                    <a href="<?php echo esc_html(strtolower($player['youtube_link'])); ?>"><img src="https://sportmeid.com/wp-content/uploads/2024/12/youtube.svg"></a> 
                    <a href="<?php echo esc_html(strtolower($player['imlca_link'])); ?>"><img src="https://sportmeid.mmcgbl.ae/wp-content/uploads/2024/12/imlca-icon.png"></a>   
                </td>
            </tr>
        </table>
    </div>
</div>
<script>
  document.addEventListener("DOMContentLoaded", () => {
    const socialLinks = document.querySelectorAll("td.social-media a");

    socialLinks.forEach(link => {
        if (!link.getAttribute("href").trim()) {
            link.style.display = "none";
        }
    });
});
</script>


function delete_players_layout_data() {
    // Delete the 'players_layout' option from the database
    delete_option('players_layout');
}

function remove_players_shortcode() {
    // Replace 'your_shortcode_name' with the actual shortcode name
    remove_shortcode('your_shortcode_name');
}

add_action('init', 'delete_players_layout_data');
add_action('init', 'remove_players_shortcode');

  
function remove_specific_player_data() {
    // The specific player ID to remove
    $player_id_to_remove = '676c0c99aab75';

    // Retrieve the existing data
    $players_data = get_option('players_data', []);
    $players_layout = get_option('players_layout', []);

    // Remove the player data with the specific ID
    if (isset($players_data[$player_id_to_remove])) {
        unset($players_data[$player_id_to_remove]);
        update_option('players_data', $players_data);
    }

    // Filter the players layout to remove the entry with the specific ID
    if (!empty($players_layout)) {
        $players_layout = array_filter($players_layout, function ($entry) use ($player_id_to_remove) {
            return strpos($entry, $player_id_to_remove) === false;
        });
        update_option('players_layout', $players_layout);
    }
}

// Hook the function to an admin action
add_action('admin_init', 'remove_specific_player_data');
SELECT RIGHT(Email, LEN(Email) - CHARINDEX('@', email)) as emaildomain ,
COUNT(Email) as EmailCount
FROM   [Your data extension]
WHERE  LEN(Email) > 0
GROUP BY RIGHT(Email, LEN(Email) - CHARINDEX('@', email))
SELECT
    "v"."Id" AS "ePOS_Variant_Id",
    "v"."ePOS Variant Name" AS "ePOS_Variant_Name",
    "vv"."CRM Record Id" AS "Verification_Record_Id",
    "vv"."Name" AS "Verification_Name",

    CASE
        WHEN "vv"."CRM Record Id" IS NULL THEN 'Create'
        WHEN "v"."Id" IS NULL THEN 'Delete'
        WHEN "v"."ePOS Variant Name" <> "vv"."Name" THEN 'Update'
    END AS "Action"
FROM  "ePOS Variants" AS "v"
FULL OUTER JOIN "ePOS Variant (Zoho Creator-Trees Verification Process)" AS "vv" 
    ON "v"."Id" = "vv"."CRM Record Id"
WHERE
    "vv"."CRM Record Id" IS NULL
    OR "v"."Id" IS NULL
    OR "v"."ePOS Variant Name" <> "vv"."Name"
Extending Classes
One of the powerful features of classes is they can be extended. You can create a new class based on an existing class, and this new class will not only inherit all the properties and methods of the existing class, but you can add new properties and methods to the new class.

This is useful when you have a class that works for most situations, but there are some cases where you need to add new features. Instead of starting from scratch and creating an entirely new class, you can extend the existing class and add the new features. A classic example of this is making a main class called MotorVehicle with properties and methods that are common to all motor vehicles, then extending this class with more specific classes like Car, Truck, and Motorcycle.

Earlier in the course you worked with the Backpack class which has properties and methods that apply to all backpacks. But there's a snag: In my closet I have a hiking backpack with an extra feature that isn't covered by the Backpack class—a hydration pack. For my dataset to be complete, I need the ability to track the hydration capacity of my pack, for obvious reasons. The bigger the hydration capacity, the heavier the pack can potentially get at the start of a hike.

To solve this problem, let's create a new class called HikingBackpack by extending the Backpack class.

Here's the original Backpack class for reference:

class Backpack {
  constructor(
    // Defines parameters:
    name,
    volume,
    color,
    pocketNum,
    strapLengthL,
    strapLengthR,
    lidOpen
  ) {
    // Define properties:
    this.name = name;
    this.volume = volume;
    this.color = color;
    this.pocketNum = pocketNum;
    this.strapLength = {
      left: strapLengthL,
      right: strapLengthR,
    };
    this.lidOpen = lidOpen;
  }
  // Add methods like normal functions:
  toggleLid(lidStatus) {
    this.lidOpen = lidStatus;
  }
  newStrapLength(lengthLeft, lengthRight) {
    this.strapLength.left = lengthLeft;
    this.strapLength.right = lengthRight;
  }
}
To create a new class from an existing one, use the extends keyword followed by the name of the class you want to extend:

class HikingBackpack extends Backpack {}
Next, define all the properties the class needs in the constructor. This includes both the existing properties from the parent class and any new properties you want to add:

class HikingBackpack extends Backpack {
  constructor(
    name,
    volume,
    color,
    pocketNum,
    strapLengthL,
    strapLengthR,
    lidOpen,
    hydrationCapacity
  ) {
    // Initialize the parent class properties
    super(name, volume, color, pocketNum, strapLengthL, strapLengthR, lidOpen);
    // New property specific to HikingBackpack
    this.hydrationCapacity = hydrationCapacity; // Capacity in liters
  }
}
In the above example, you see hydrationCapacity has been added in the constructor. This is the new property specific to the HikingBackpack class. The super() method is used to call the constructor of the parent class and pass in the properties common to both classes. Finally, the new hydrationCapacity property is added.

The new HikingBackpack class can also be extended with new methods. That's done the same way as before:

// Method to check the hydration level.
  checkHydration() {
    if (this.hydrationCapacity > 0) {
      console.log(`You have ${this.hydrationCapacity} liters of water left.`);
    } else {
      console.log("Time to refill your water!");
    }
  }
You can also override methods from the parent class by defining a new method with the same name, calling in the parent method with the super keyword, and then adding new functionality:

toggleLid(lidStatus) {
    super.toggleLid(lidStatus); // Call the parent method
    if (lidStatus) {
      console.log("Your hiking backpack lid is open. Remember to check to make sure the hydration pack is inserted.");
    } else {
      console.log("Your hiking backpack lid is closed. Remember to check to make sure the hydration pack is inserted.");
    }
  }
Here's the full code for the extended HikingBackpack class:

class HikingBackpack extends Backpack {
  constructor(
    name,
    volume,
    color,
    pocketNum,
    strapLengthL,
    strapLengthR,
    lidOpen,
    hydrationCapacity
  ) {
    // Initialize the parent class properties
    super(name, volume, color, pocketNum, strapLengthL, strapLengthR, lidOpen);
    // New property specific to HikingBackpack
    this.hydrationCapacity = hydrationCapacity; // Capacity in liters
  }

  // Method to check the hydration level and alert if it needs refilling
  checkHydration() {
    if (this.hydrationCapacity > 0) {
      console.log(`You have ${this.hydrationCapacity} liters of water left.`);
    } else {
      console.log("Time to refill your water!");
    }
  }

  // Extend or override methods from the parent class if necessary
  // For example, adding extra functionality when the lid is toggled
  toggleLid(lidStatus) {
    super.toggleLid(lidStatus); // Call the parent method
    if (lidStatus) {
      console.log(
        "Your hiking backpack lid is open. Remember to check to make sure the hydration pack is inserted."
      );
    } else {
      console.log(
        "Your hiking backpack lid is closed. Remember to check to make sure the hydration pack is inserted."
      );
    }
  }
}
SELECT InterventionType.*, InterventionLocation.*, InterventionService.* FROM

(SELECT SURef, 
COALESCE([1],0) AS Phone,
COALESCE([2],0) AS [Assessment/Intervention],
COALESCE([3],0) AS Meeting,
COALESCE([4],0) AS Equipment,
COALESCE([5],0) AS [Admin],
COALESCE([6],0) AS Travel,

SUM(
COALESCE([1],0) + 
COALESCE([2],0) + 
COALESCE([3],0) + 
COALESCE([4],0) + 
COALESCE([5],0) + 
COALESCE([6],0)
) AS TotalInterventions
FROM
(
  SELECT SURef, InterventionType
  FROM [BOCClientIndex - SU Interventions]
 
) src
pivot
(
  COUNT(InterventionType)
  for InterventionType in ([1], [2], [3], [4], [5], [6])
) piv
GROUP BY SURef, 
COALESCE([1],0) ,
COALESCE([2],0) ,
COALESCE([3],0) ,
COALESCE([4],0) ,
COALESCE([5],0) ,
COALESCE([6],0) 
) AS InterventionType

INNER JOIN

(SELECT SURef, 
COALESCE([1],0) AS TeamBase,
COALESCE([2],0) AS [FamilyHomeRes],
COALESCE([3],0) AS Preschool,
COALESCE([4],0) AS School,
COALESCE([5],0) AS [DayService],
COALESCE([6],0) AS RespiteFamilyHomeShare,
COALESCE([7],0) AS [Other],
COALESCE([8],0) AS TeleHealth,


SUM(
COALESCE([1],0) + 
COALESCE([2],0) + 
COALESCE([3],0) + 
COALESCE([4],0) + 
COALESCE([5],0) + 
COALESCE([6],0) +
COALESCE([7],0) + 
COALESCE([8],0) 

) AS TotalInterventions

from 
(
  SELECT SURef, InterventionLocation
  FROM [BOCClientIndex - SU Interventions]
 
) src
pivot
(
  COUNT(InterventionLocation)
  FOR InterventionLocation in ([1], [2], [3], [4], [5], [6], [7], [8])
) piv
GROUP BY SURef, 
COALESCE([1],0) ,
COALESCE([2],0) ,
COALESCE([3],0) ,
COALESCE([4],0) ,
COALESCE([5],0) ,
COALESCE([6],0) ,
COALESCE([7],0) ,
COALESCE([8],0) 
) As InterventionLocation 

ON InterventionType.SURef = InterventionLocation.SURef

INNER JOIN

(
SELECT SURef, 
COALESCE([1],0) AS CommunityNursing,
COALESCE([2],0) AS OccupationalTherapy,
COALESCE([3],0) AS Paediatrics,
COALESCE([4],0) AS Physiotherapy,
COALESCE([5],0) AS Psychology,
COALESCE([6],0) AS PreSchoolLiaison,
COALESCE([7],0) AS SocialWork,
COALESCE([8],0) AS SpeechLanguage,
COALESCE([9],0) AS Psychiatry,
COALESCE([10],0) AS ClinicalNurse,
COALESCE([11],0) AS BehaviourSupport,
COALESCE([12],0) AS CommunityLinkWorker,
COALESCE([13],0) AS Psychotherapy,
COALESCE([14],0) AS AdvancedNursePractitioner,
COALESCE([15],0) AS AssistiveTechnology,

SUM(
COALESCE([1],0) + 
COALESCE([2],0) + 
COALESCE([3],0) + 
COALESCE([4],0) + 
COALESCE([5],0) + 
COALESCE([6],0) +
COALESCE([7],0) + 
COALESCE([8],0) +
COALESCE([9],0) + 
COALESCE([10],0) + 
COALESCE([11],0) + 
COALESCE([12],0) + 
COALESCE([13],0) + 
COALESCE([14],0) +
COALESCE([15],0) 

) AS TotalInterventions

from 
(
  select SURef, [Service]
  from [BOCClientIndex - SU Interventions]
 
) src
pivot
(
  COUNT([Service])
  FOR [Service] in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15])
) piv
GROUP BY SURef, 
COALESCE([1],0) ,
COALESCE([2],0) ,
COALESCE([3],0) ,
COALESCE([4],0) ,
COALESCE([5],0) ,
COALESCE([6],0) ,
COALESCE([7],0) ,
COALESCE([8],0) ,
COALESCE([9],0) ,
COALESCE([10],0) ,
COALESCE([11],0) ,
COALESCE([12],0) ,
COALESCE([13],0) ,
COALESCE([14],0) ,
COALESCE([15],0) ) AS InterventionService

ON InterventionType.SURef = InterventionService.SURef


ORDER BY InterventionLocation.SURef

<script>
    document.addEventListener("DOMContentLoaded", function () {
  const marqueeElement = document.querySelector(".marquee");
  const text = marqueeElement.textContent; 
  const speed = 200; 
  marqueeElement.textContent = ""; // Clear the text initially
  let index = 0;

  function typeWriter() {
    if (index < text.length) {
      marqueeElement.textContent += text.charAt(index);
      index++;
      setTimeout(typeWriter, speed);
    }
  }

  typeWriter();
});
</script>
1a opção:
if(!parentCaseIds.isEmpty()) {
    for(Id parentCaseId : parentCaseIds) {
        Case objCase = new Case();
        objCase.Id = parentCaseId;
        objCase.Status = 'Concluído';
        casesToUpdate.add(objCase);
    }
}
---------------------------------------
2a opção:
if(!parentCaseIds.isEmpty()) {
    for(Id parentCaseId : parentCaseIds) {
        casesToUpdate.add(new Case(Id=parentCaseId, Status='Concluído'));
    }
}
--------------------------------------- 
jQuery(document).ready(function($) {
    // Function to show the loader
    function showLoader() {
        document.getElementById('page-loader').style.display = 'flex'; // Ensure the loader is shown
    }
  
      // Expose the showLoader function globally
    window.showLoader = showLoader;

    // Function to hide the loader - might be used elsewhere or for initial page load
    function hideLoader() {
        document.getElementById('page-loader').style.display = 'none'; // Ensure the loader is hidden
    }
    // Function to initialize Cloudinary widget and handle upload success
    function setupCloudinaryWidget(editButtonId, urlFieldSelector, submitButtonSelector) {
        var widget = cloudinary.createUploadWidget({
            cloudName: "drt2tlz1j",
            uploadPreset: "giftWidget",
            show_powered_by: false,
            sources: ["local", "image_search", "url"],
            defaultSource: "local",
            googleApiKey: "AIzaSyAhy7PJXH7_3t9qbIiczK5nZHsaUOGEFMM",
            searchBySites: ["all", "unsplash.com", "pexels.com", "vecteezy.com", "forestnation.com/net/"],
            showAdvancedOptions: false,
            cropping: true,
            croppingAspectRatio: 9 / 16,
            croppingShowBackButton: true,
            multiple: false,
            folder: "gs-uploads",
            clientAllowedFormats: ["image/*", "video/*", "mp4", "mov", "webm", "webp", "gif", "jpg", "png", "svg"],
            showCompletedButton: true,
            styles: {
                palette: {
                    window: "#00000099",
                    windowBorder: "#FFFFFF",
                    tabIcon: "#009A42",
                    menuIcons: "#FFFFFF",
                    textDark: "#FFFFFF",
                    textLight: "#FFFFFF",
                    link: "#009A42",
                    action: "#009A42",
                    inactiveTabIcon: "#FFFFFF",
                    error: "#FA9B32",
                    inProgress: "#009A42",
                    complete: "#009A42",
                    sourceBg: "#00000059"
                },
                fonts: {
                    default: null,
                    "'Montserrat', sans-serif": {
                        url: "https://fonts.googleapis.com/css?family=Montserrat:400,700",
                        active: true
                    }
            }
            }
        }, (error, result) => {
            if (!error && result && result.event === "success") {
                console.log('Done! Here is the image info: ', result.info);
                var uploadedUrl = result.info.secure_url;
                
                // Fill the ACF URL field with the uploaded URL
                $(urlFieldSelector).val(uploadedUrl);
							
                // Show the loader before submitting the form
                showLoader();
                
                // Submit the ACF form
                $(submitButtonSelector).click();
            }
        });

        // Attach click event to the edit button to open the widget
        $(editButtonId).on('click', function() {
            widget.open();
        });
    }

    // Setup Cloudinary widget for each edit button, URL field, and submit button
    setupCloudinaryWidget("#slide1edit", "input[name='acf[field_65c630a53001b]']", "button[name='acf[field_65c630e33001f]']");
    setupCloudinaryWidget("#slide2edit", "input[name='acf[field_65c630c93001c]']", "button[name='acf[field_65c6311130020]']");
    setupCloudinaryWidget("#slide3edit", "input[name='acf[field_65c630cf3001d]']", "button[name='acf[field_65c6311930021]']");
    setupCloudinaryWidget("#slide4edit", "input[name='acf[field_65c630d63001e]']", "button[name='acf[field_65c6312330022]']");
});
const cloudinarySettings = {
        cloudName: "drt2tlz1j",
        uploadPreset: "giftWidget",
        show_powered_by: false,
        sources: ["local", "image_search"],
        defaultSource: "local",
        googleApiKey: "AIzaSyAhy7PJXH7_3t9qbIiczK5nZHsaUOGEFMM",
        searchBySites: ["all", "unsplash.com", "pexels.com", "vecteezy.com"],
        showAdvancedOptions: false,
        cropping: true,
        croppingShowBackButton: true,
        multiple: false,
        folder: "gs-uploads",
        clientAllowedFormats: ["webp", "gif", "jpg", "png", "svg"],
        showCompletedButton: true,
        styles: {
            palette: {
                window: "#00000099",
                windowBorder: "#FFFFFF",
                tabIcon: "#009A42",
                menuIcons: "#FFFFFF",
                textDark: "#FFFFFF",
                textLight: "#FFFFFF",
                link: "#009A42",
                action: "#009A42",
                inactiveTabIcon: "#FFFFFF",
                error: "#FA9B32",
                inProgress: "#009A42",
                complete: "#009A42",
                sourceBg: "#00000059"
            },
            fonts: {
                default: null,
                "'Montserrat', sans-serif": {
                    url: "https://fonts.googleapis.com/css?family=Montserrat:400,700",
                    active: true
                }
            }
        }
    };
Concurrency: A single chef multitasking between several dishes.
Parallelism: Multiple chefs working on separate dishes simultaneously.

1. Using Promises for Concurrency
Promises are one of the simplest ways to achieve concurrency in TypeScript.

const fetchData = (url: string) => {
  return new Promise<string>((resolve) => {
    setTimeout(() => resolve(`Data from ${url}`), 1000);
  });
};

const main = async () => {
  console.log('Fetching data concurrently...');
  const data1 = fetchData('https://api.example.com/1');
  const data2 = fetchData('https://api.example.com/2');

  const results = await Promise.all([data1, data2]);
  console.log(results); // ["Data from https://api.example.com/1", "Data from https://api.example.com/2"]
};
main();

Explanation:
Promise.all allows both fetch operations to run concurrently, saving time. 2. Concurrency with Async/Await async/await simplifies promise chaining while maintaining the asynchronous nature.

async function task1() {
  console.log("Task 1 started");
  await new Promise((resolve) => setTimeout(resolve, 2000));
  console.log("Task 1 completed");
}

async function task2() {
  console.log("Task 2 started");
  await new Promise((resolve) => setTimeout(resolve, 1000));
  console.log("Task 2 completed");
}

async function main() {
  console.log("Concurrent execution...");
  await Promise.all([task1(), task2()]);
  console.log("All tasks completed");
}
main();

Parallelism in TypeScript
While JavaScript doesn’t natively support multi-threading, Web Workers and Node.js Worker Threads enable parallelism. These features leverage separate threads to handle computationally expensive tasks.

1. Web Workers for Parallelism
In browser environments, Web Workers execute scripts in a separate thread.

// worker.ts
addEventListener('message', (event) => {
  const result = event.data.map((num: number) => num * 2);
  postMessage(result);
});
// main.ts
const worker = new Worker('worker.js');

worker.onmessage = (event) => {
  console.log('Result from worker:', event.data);
};

worker.postMessage([1, 2, 3, 4]);


2. Node.js Worker Threads
For server-side applications, Node.js provides worker_threads.

// worker.js
const { parentPort } = require('worker_threads');
parentPort.on('message', (data) => {
  const result = data.map((num) => num * 2);
  parentPort.postMessage(result);
});
// main.js
const { Worker } = require('worker_threads');

const worker = new Worker('./worker.js');
worker.on('message', (result) => {
  console.log('Worker result:', result);
});
worker.postMessage([1, 2, 3, 4]);
Patterns for Effective Concurrency and Parallelism
1. Task Queues for Managing Concurrency
When dealing with many tasks, task queues ensure controlled execution.

class TaskQueue {
  private queue: (() => Promise<void>)[] = [];
  private running = 0;
  constructor(private concurrencyLimit: number) {}

  enqueue(task: () => Promise<void>) {
    this.queue.push(task);
    this.run();
  }

  private async run() {
    if (this.running >= this.concurrencyLimit || this.queue.length === 0) return;

    this.running++;
    const task = this.queue.shift();
    if (task) await task();
    this.running--;
    this.run();
  }
}

// Usage
const queue = new TaskQueue(3);
for (let i = 0; i < 10; i++) {
  queue.enqueue(async () => {
    console.log(`Task ${i} started`);
    await new Promise((resolve) => setTimeout(resolve, 1000));
    console.log(`Task ${i} completed`);
  });
}

2. Load Balancing with Worker Pools
Worker pools efficiently distribute tasks across multiple workers.

import { Worker, isMainThread, parentPort, workerData } from 'worker_threads';

if (isMainThread) {
  const workers = Array.from({ length: 4 }, () => new Worker(__filename));
  const tasks = [10, 20, 30, 40];
  workers.forEach((worker, index) => {
    worker.postMessage(tasks[index]);
    worker.on('message', (result) => console.log('Result:', result));
  });
} else {
  parentPort.on('message', (task) => {
    parentPort.postMessage(task * 2);
  });
}
Challenges and Solutions
1. Debugging Asynchronous Code

Use tools like async_hooks in Node.js to trace async operations.
Use IDEs that support debugging async/await code.
2. Error Handling

Wrap promises in try/catch blocks or use .catch() with Promise.all.
3. Race Conditions
Avoid shared state or use locking mechanisms.

Best Practices for Concurrency and Parallelism
1. Prioritize Asynchronous I/O: Avoid blocking the main thread for I/O-heavy operations.
2. Use Worker Threads for CPU-Intensive Tasks: Offload heavy computations to worker threads or Web Workers.
3. Limit Concurrency: Use task queues or libraries like p-limit to control concurrency levels.
4. Leverage Libraries: Use libraries like Bull for task queues or Workerpool for worker thread management.
//docuRef.clear();
//select firstonly docuRef 
//    where docuRef.RefTableId == tableName2Id("HcmApplicant")
//    && docuRef.RefRecId == HcmApplicant.RecId;

//if(docuRef)
//{
//    builder.addAttachment(DocumentManagement::getAttachmentStream(docuRef),docuRef.Name);
//}
import 'package:flutter/material.dart';

class AnimatedNavigation {
  static push({
    required BuildContext context,
    required Widget page,
  }) {
    return Navigator.of(context).push(
      PageRouteBuilder(
        transitionDuration: const Duration(milliseconds: 250),
        pageBuilder: (context, animation, secondaryAnimation) => page,
        transitionsBuilder: (context, animation, secondaryAnimation, child) {
          const begin = 0.0;
          const end = 1.0;
          final tween = Tween(begin: begin, end: end);
          final offsetAnimation = animation.drive(tween);

          return FadeTransition(
            opacity: offsetAnimation,
            child: child,
          );
        },
      ),
    );
  }

  static pushAndRemoveUntil({
    required BuildContext context,
    required Widget page,
  }) {
    return Navigator.of(context).pushAndRemoveUntil(
      PageRouteBuilder(
        transitionDuration: const Duration(milliseconds: 250),
        pageBuilder: (context, animation, secondaryAnimation) => page,
        transitionsBuilder: (context, animation, secondaryAnimation, child) {
          const begin = 0.0;
          const end = 1.0;
          final tween = Tween(begin: begin, end: end);
          final offsetAnimation = animation.drive(tween);

          return FadeTransition(
            opacity: offsetAnimation,
            child: child,
          );
        },
      ),
          (route) => false,
    );
  }
}
Yes, crypto payment gateways have the potential to become a standard in global e-commerce due to their ability to process fast, secure, and borderless transactions. They eliminate the need for intermediaries, reducing transaction fees and enabling merchants to accept payments from customers worldwide. With the growing demand for decentralized finance and the increasing adoption of cryptocurrencies, crypto payment gateway development is evolving to support diverse currencies, making cross-border payments more efficient. However, regulatory challenges and volatility in cryptocurrency markets need to be addressed before they can fully replace traditional payment systems.
Intro:
MIm7  SOL  MIm7  SOL

MIm7  LA7/4  MIm7  LA7/4  SOL

MIm7  SOL  MIm7  SOL

MIm7  LA7/4  MIm7  LA7/4  SOL

DO                       RE/FA#
So, so you think you can tell,
            LAm/MI                SOL
Heaven from Hell, blue skies from pain.
                     RE/FA#
Can you tell a green field
                  DO                   LAm
from a cold steel rail, a smile from a veil
                     SOL
Do you think you can tell?
                    DO                    RE/FA#
Did they get you to trade your heroes for ghosts
              LAm/MI               SOL
Hot ashes for trees, hot air for a cool breeze
                 RE/FA#
cold comfort for change
              DO                           LAm
And did you exchange a walk on part in the war
                     SOL
for a lead role in a cage?

MIm7  SOL  MIm7  SOL

MIm7  LA7/4  MIm7  LA7/4  SOL

DO                                RE/FA#
  How I wish, how I wish you were here.
           LAm/MI
We're just two lost souls swimming in a fish bowl
SOL
  year after year
RE/FA#
  Running over the same old ground.
DO
  What have we found?
             LAm                  SOL
The same old fears. Wish you were here...

MIm7  SOL  MIm7  SOL

MIm7  LA7/4  MIm7  LA7/4  SOL
Investing in a crypto banking solution can significantly enhance your business's financial capabilities. It allows for seamless cryptocurrency transactions, which can attract tech-savvy customers and improve user experience. With features like multi-currency support, real-time reporting, and robust security measures, this software enables businesses to streamline operations and reduce transaction costs. Furthermore, as the demand for digital assets grows, adopting crypto banking software solutions positions your business at the forefront of financial innovation. Overall, the long-term benefits, including increased customer loyalty and potential revenue growth, make crypto banking software a worthwhile investment.

Yes, a white Label crypto payment gateway can significantly boost transaction security for e-commerce stores. By utilizing advanced encryption techniques and blockchain technology, these gateways minimize the risk of fraud and chargebacks. They offer secure wallet integrations, ensuring that sensitive customer information remains protected throughout the transaction. Additionally, many white-label solutions implement multi-signature wallets and robust identity verification measures, further enhancing security. White label crypto payment gateway safeguards transactions and builds customer trust, making it a viable option for e-commerce businesses looking to enhance their security posture while accepting cryptocurrency payments.

The cost of tokenizing an asset can vary widely depending on several factors, including the type of asset, the complexity of the tokenization process, and the asset tokenization company you choose to work with. Generally, fees can range from $10,000 to over $100,000. 

Basic costs include legal fees for compliance and regulations, smart contract development, and integration with blockchain platforms. For instance, tokenizing real estate might require extensive legal reviews and property evaluations, increasing costs. Additionally, ongoing costs for maintaining and managing the tokens, such as custody and reporting, should be considered.

Selecting an experienced asset tokenization company can ensure a smoother process, but it may come at a premium. Businesses looking to tokenize assets should prepare for initial setup costs and ongoing maintenance expenses to ensure successful and compliant asset tokenization.
// HTML Code
<div class="home-video">
	<div class="hp-video-container">
		<div class="slideshow-container">
			<!-- <div class="mySlides fade">
				<video loop muted autoplay playsinline class="fullscreen-bg__video">
					<source src="https://static-trailercentral.s3.amazonaws.com/videos/LUND23_W2F_Pre-roll_15_16x9_FINAL-1920.mp4" type="video/mp4">
				</video>
			</div> -->
			<div class="mySlides fade" style="opacity: 0;">
				<video loop="" muted="" autoplay="" playsinline="" class="fullscreen-bg__video">
					<source src="https://static-trailercentral.s3.amazonaws.com/videos/ben-my23-homepage-video-desktop.mp4" type="video/mp4">
				</video>
			</div>
			<div class="mySlides fade" style="opacity: 1;">
				<video loop="" muted="" autoplay="" playsinline="" class="fullscreen-bg__video">
					<source src="https://static-trailercentral.s3.amazonaws.com/videos/macdonaldmarineinc_5.mp4" type="video/mp4">
				</video>
			</div>

			
			<div class="mySlides fade" style="opacity: 0;">
				<video loop="" muted="" autoplay="" playsinline="" class="fullscreen-bg__video">
					<source src="https://static-trailercentral.s3.amazonaws.com/videos/MY2024-B2.mp4" type="video/mp4">
				</video>
			</div>
			
			<a class="prev" onclick="plusSlides(-1)">❮</a>
			<a class="next" onclick="plusSlides(1)">❯</a>
            
            <!-- <div class="dot-container">
				<span class="dot" onclick="currentSlide(1)"></span>
				<span class="dot" onclick="currentSlide(2)"></span>
				<span class="dot" onclick="currentSlide(3)"></span>
				<span class="dot" onclick="currentSlide(4)"></span>
				<span class="dot" onclick="currentSlide(5)"></span>
			</div> -->
		</div>
	</div>
	<script type="text/javascript">
		document.querySelector('.fullscreen-bg__video').playbackRate = 1;

		var slideIndex = 1;
			var myTimer;
			var slideshowContainer;
			window.addEventListener("load", function () {
				showSlides(slideIndex);
				myTimer = setInterval(function () {
					(1);
				}, 15000);
			//UNCOMMENT OUT THE LINE BELOW TO KEEP ARROWS PART OF MOUSEENTER PAUSE/RESUME
				slideshowContainer = document.getElementsByClassName("slideshow-container")[0];
			slideshowContainer.addEventListener("mouseenter", pause);
			slideshowContainer.addEventListener("mouseleave", resume);
			});
			// NEXT AND PREVIOUS CONTROL
			function plusSlides(n) {
				clearInterval(myTimer);
				if (n < 0) {
					showSlides((slideIndex -= 1));
				} else {
					showSlides((slideIndex += 1));
				}
				//COMMENT OUT THE LINES BELOW TO KEEP ARROWS PART OF MOUSEENTER PAUSE/RESUME
				if (n === -1) {
					myTimer = setInterval(function () {
						plusSlides(n + 2);
					}, 15000);
				} else {
					myTimer = setInterval(function () {
						plusSlides(n + 1);
					}, 15000);
				}
			}
			//Controls the current slide and resets interval if needed
			function currentSlide(n) {
				clearInterval(myTimer);
				myTimer = setInterval(function () {
					plusSlides(n + 1);
				}, 15000);
				showSlides((slideIndex = n));
			}


			var current = 0,
				slides = document.getElementsByClassName("mySlides");

			setInterval(function() {
			  for (var i = 0; i < slides.length; i++) {
				slides[i].style.opacity = 0;
			  }
			  current = (current != slides.length - 1) ? current + 1 : 0;
			  slides[current].style.opacity = 1;
			}, 15000);


			function showSlides(n) {
				var i;
				var slides = document.getElementsByClassName("mySlides");
				var dots = document.getElementsByClassName("dot");
				if (n > slides.length) {
					slideIndex = 1;
				}
				if (n < 1) {
					slideIndex = slides.length;
				}
				for (i = 0; i < slides.length; i++) {
					slides[i].style.opacity = 0;
				}
				for (i = 0; i < dots.length; i++) {
					dots[i].className = dots[i].className.replace(" active", "");
				}
				slides[slideIndex - 1].style.opacity = 1;
				// dots[slideIndex - 1].className += " active";
			}
			pause = () => {
				clearInterval(myTimer);
			};
			resume = () => {
				clearInterval(myTimer);
				myTimer = setInterval(function () {
					plusSlides(slideIndex);
				}, 15000);
			};
	</script>
</div>

// SCSS
.home-video{
            position: relative;
            overflow: hidden;
            .hp-video-container{
                width: 100%;
                text-align: center;
                .slideshow-container{
                    width: 100%;
                    height: 50vw;
                    position: relative;
                    margin: auto;
                    background-color: #000;
                }
            }
            .mySlides{
                position: absolute;
                -webkit-transition: opacity .5s ease-in;
                transition: opacity .5s ease-in;
                width: 100%;
                height: 100%;
                display: -webkit-box;
                display: -webkit-flex;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                -webkit-align-items: center;
                -ms-flex-align: center;
                align-items: center;
                -webkit-box-pack: center;
                -webkit-justify-content: center;
                -ms-flex-pack: center;
                justify-content: center;
                &+.mySlides{
                    opacity: 0;
                }
            }
            .prev, .next{
                cursor: pointer;
                position: absolute;
                top: 50%;
                width: auto;
                padding: 10px 15px;
                color: white;
                font-weight: bold;
                font-size: 18px;
                -webkit-transition: 0.6s ease;
                transition: 0.6s ease;
                border-radius: 2px;
                -webkit-user-select: none;
                -moz-user-select: none;
                -ms-user-select: none;
                user-select: none;
                -webkit-transform: translatey(-50%);
                -ms-transform: translatey(-50%);
                transform: translatey(-50%);
                z-index: 9;
                -webkit-filter: drop-shadow(0px 4px 6px black);
                filter: drop-shadow(0px 4px 6px black);
            }
            .prev{ left: 0; }
            .next{ right: 0; }
            video{
                height: 100%;
                width: 100%;
                object-fit: cover;
            }
        }
921dd32d0e41f0002d113f7a7c0a2b7a
If you are looking for a reliable OST to PST converter, I highly recommend trying EmailsGuru OST to PST Conveter. It is user-friendly and efficiently recovers inaccessible OST files, converting them to PST without any hassle. This tool offers offers a quick and hassle-free conversion process. The tool maintain data integrity and support multiple versions of Outlook. Additionally, it provide a preview feature, allowing you to view emails before conversion. Users can smoothly run it on Windows 10, 8.1, 7, XP, Vista and all below versions. Users can try a free trial version also.
class node{
    data;
    next=null;
}
class linklistNodes{
    head=null;
    
    add(value){
          let newNode=new node
          newNode.data=value
          if( this.head==null){
              this.head=newNode
             console.log('ia am head')
               this.head.data=value
                
               return
          }
          
          let lastNode= this.head
        
          while(lastNode.next!==null){
              lastNode=lastNode.next
                }
          lastNode.next=newNode}
    
    
    find(value){
        let currentNode=this.head
        let find;
        while(currentNode.next!=null){
                 currentNode=  currentNode.next
            if(currentNode.data==value){
                find=currentNode
                console.log('find')
                
            } }
            return find
         }
         
         
         deletex(value){
             
            let linklist= this.head
            if(linklist.data==value){
                console.log('......')
               this.head=linklist.next
            }
            while(linklist.next!=null){
                
                if(linklist.next.data==value){
                    linklist.next=linklist.next.next
                    console.log('......................')
                    console.log(linklist)
                    console.log(linklist.next.next)
                       console.log('......................')
                    return
                }
                linklist= linklist.next
            }
             
             
         }
}

const linklist=new linklistNodes
linklist.add('21')
linklist.add('25')
linklist.add('26')
linklist.add('26')
linklist.add('21')
linklist.add('25')
linklist.add('26')
linklist.add('26')

linklist. deletex('25')
console.log(linklist.head)
$(document).ready(function () {
    var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
  
    /*
    var userAgent = navigator.userAgent.toLowerCase();
      var isChrome = userAgent.indexOf('chrome') > -1 && userAgent.indexOf('edge') === -1 && userAgent.indexOf('opr') === -1; // Esclude Edge e Opera
      var isSafari = userAgent.indexOf('safari') > -1 && userAgent.indexOf('chrome') === -1; // Safari ma non Chrome

      var isNotChromeAndSafari = !isChrome && !isSafari;

      console.log("isChrome:", isChrome);
      console.log("isSafari:", isSafari);
      console.log("isNotChromeAndSafari:", isNotChromeAndSafari);

    */

    // Rilevamento del browser
    if (isFirefox) {
        console.log("Rilevato Firefox: Applicare una soluzione alternativa.");
    }

    // Funzione per memorizzare il testo originale
    $('#prefix option').each(function () {
        if (isFirefox) {
            // Per Firefox, usa l'attributo direttamente nel DOM
            $(this).attr('data-original-text', $(this).text());
        } else {
            // Per altri browser, usa jQuery .data()
            $(this).data('original-text', $(this).text());
        }
        console.log("Testo originale:", $(this).text());
    });

    // Gestione dell'evento 'change'
    $(document).on('change', '#prefix', function () {
        $('#prefix option').each(function () {
            if (isFirefox) {
                // Recupera il testo originale dall'attributo
                $(this).text($(this).attr('data-original-text'));
            } else {
                // Recupera il testo originale dai dati di jQuery
                $(this).text($(this).data('original-text'));
            }
        });

        var selectedValue = $(this).val();
        var formattedPrefix = '(' + selectedValue + ')';

        // Modifica il testo dell'opzione selezionata
        $(this).find('option:selected').text(formattedPrefix);
    });

    // Gestione dell'evento 'click'
    $(document).on('click', '#prefix', function () {
        $('#prefix option').each(function () {
            if (isFirefox) {
                // Recupera il testo originale dall'attributo
                $(this).text($(this).attr('data-original-text'));
            } else {
                // Recupera il testo originale dai dati di jQuery
                $(this).text($(this).data('original-text'));
            }
        });
    });
});
// Shortcode [fellow_intern type='']

function fellow_intern ( $atts, $content = null) {
    $today = date('Ymd');
	$atts = shortcode_atts(
        array(
            'type' => '',
            'number' => '-1',
        ),
        $atts,
        'fellow_intern'
    );
    $args = array(
        'post_type' => 'fellow-intern',
		'posts_per_page' => -1,
        'post_status' => 'publish',
        'orderby' => 'date',
        'order' => 'ASC',
    );

	if( !empty( $atts['type'] ) ) {
		$args['tax_query'] = array(
			array(
				'taxonomy' => 'fellow-type',
				'field' => 'slug',
				'terms' => $atts['type'],
            )
		);
	}

    $fellow_query = new WP_Query($args);

    ob_start();
    if($fellow_query->have_posts()) { ?>

    <div class="fellows-wrapper">

    <?php

    while ($fellow_query->have_posts()) {
    $fellow_query->the_post(); ?>

    <div class="fellow-inner">
		<!-- Thumbnail -->
		<div class="fellow-img">
			<?php if ( has_post_thumbnail() ) { the_post_thumbnail('full'); } ?>
		</div>
		<div class="fellow-content">
			<!-- Title -->
			<h3><?php echo the_title(); ?></h3>
			<!-- Details -->
			<div class="fellow-details">
				<?php echo the_content(); ?>
			</div>
		</div>
	</div>

    <?php }
    wp_reset_postdata();
    ?>
    </div>

    <?php
    } else { ?>
        <div>No fellows found</div>
    <?php }
    return ob_get_clean();
}
add_shortcode('fellow_intern', 'fellow_intern');
star

Sun Dec 22 2024 19:19:52 GMT+0000 (Coordinated Universal Time)

@RehmatAli2024 #deluge

star

Sun Dec 22 2024 16:00:35 GMT+0000 (Coordinated Universal Time)

@doctorblog

star

Sun Dec 22 2024 15:36:58 GMT+0000 (Coordinated Universal Time)

@doctorblog

star

Sun Dec 22 2024 10:08:41 GMT+0000 (Coordinated Universal Time) https://www.ozon.ru/?__rr

@Salty

star

Sun Dec 22 2024 01:55:41 GMT+0000 (Coordinated Universal Time)

@E23CSEU1151

star

Sat Dec 21 2024 23:43:08 GMT+0000 (Coordinated Universal Time)

@jdeveloper #javascript

star

Sat Dec 21 2024 17:36:46 GMT+0000 (Coordinated Universal Time) https://apple.stackexchange.com/questions/144474/mds-and-mds-stores-constantly-consuming-cpu

@milliedavidson #mac #cpuusage #mds_stores

star

Sat Dec 21 2024 15:45:28 GMT+0000 (Coordinated Universal Time) https://www.javatpoint.com/java-string-contains

@Subha

star

Sat Dec 21 2024 13:28:36 GMT+0000 (Coordinated Universal Time) https://www.roblox.com/users/7655483489/profile

@kool015312

star

Sat Dec 21 2024 12:35:31 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/6101956/generating-a-random-password-in-php/31284266#31284266

@dontexpectless #php

star

Sat Dec 21 2024 09:29:40 GMT+0000 (Coordinated Universal Time) https://massgrave.dev/windows_ltsc_links#win10-enterprise-ltsc-2021

@Curable1600 #windows

star

Sat Dec 21 2024 09:07:07 GMT+0000 (Coordinated Universal Time)

@E23CSEU1151

star

Sat Dec 21 2024 07:49:16 GMT+0000 (Coordinated Universal Time)

@E23CSEU1151

star

Sat Dec 21 2024 06:44:06 GMT+0000 (Coordinated Universal Time)

@Rishi1808

star

Sat Dec 21 2024 06:28:09 GMT+0000 (Coordinated Universal Time)

@E23CSEU1151

star

Sat Dec 21 2024 01:18:57 GMT+0000 (Coordinated Universal Time) https://www.mindeo.com/formations/success-pro

@laurianobrice@

star

Fri Dec 20 2024 15:28:49 GMT+0000 (Coordinated Universal Time) https://pytube.io/en/latest/user/install.html

@CHIBUIKE

star

Fri Dec 20 2024 15:28:43 GMT+0000 (Coordinated Universal Time) https://pytube.io/en/latest/user/install.html

@CHIBUIKE

star

Fri Dec 20 2024 12:26:10 GMT+0000 (Coordinated Universal Time) https://appticz.com/hotel-booking-script

@aditi_sharma_

star

Fri Dec 20 2024 09:52:36 GMT+0000 (Coordinated Universal Time)

@Naveen@1833 #nodejs

star

Fri Dec 20 2024 03:53:21 GMT+0000 (Coordinated Universal Time)

@Pulak

star

Fri Dec 20 2024 00:10:45 GMT+0000 (Coordinated Universal Time) https://salesforcetime.com/2024/04/06/using-custom-metadata-types-in-flow-without-get/

@dannygelf #salesforce #custommetadatatype #flow #cmdt

star

Thu Dec 19 2024 23:42:17 GMT+0000 (Coordinated Universal Time)

@BilalRaza12

star

Thu Dec 19 2024 22:10:51 GMT+0000 (Coordinated Universal Time)

@shirnunn

star

Thu Dec 19 2024 16:22:05 GMT+0000 (Coordinated Universal Time)

@RehmatAli2024 #deluge

star

Thu Dec 19 2024 13:38:02 GMT+0000 (Coordinated Universal Time) https://www.linkedin.com/learning/javascript-essential-training/javascript-the-soil-from-which-the-modern-web-grows

@NaviAndrei #javascript

star

Thu Dec 19 2024 12:55:50 GMT+0000 (Coordinated Universal Time) https://appticz.com/uber-for-handyman-app-development

@davidscott

star

Thu Dec 19 2024 11:32:39 GMT+0000 (Coordinated Universal Time)

@paulbarry

star

Thu Dec 19 2024 11:05:25 GMT+0000 (Coordinated Universal Time)

@Huzaifa

star

Thu Dec 19 2024 01:42:46 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/76127897/netsuite-results-where-one-field-is-true-and-the-other-is-false-that-it-returns

@susilogn

star

Thu Dec 19 2024 01:42:20 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/76127897/netsuite-results-where-one-field-is-true-and-the-other-is-false-that-it-returns

@susilogn

star

Wed Dec 18 2024 18:25:49 GMT+0000 (Coordinated Universal Time)

@gbritgs

star

Wed Dec 18 2024 16:17:41 GMT+0000 (Coordinated Universal Time)

@FOrestNAtion

star

Wed Dec 18 2024 16:16:54 GMT+0000 (Coordinated Universal Time)

@FOrestNAtion

star

Wed Dec 18 2024 15:37:27 GMT+0000 (Coordinated Universal Time) https://dev.to/shafayeat/mastering-concurrency-and-parallelism-in-typescript-1bgf

@StephenThevar #nodejs #javascript

star

Wed Dec 18 2024 15:00:37 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Wed Dec 18 2024 13:38:20 GMT+0000 (Coordinated Universal Time)

@Samuel1347

star

Wed Dec 18 2024 13:28:13 GMT+0000 (Coordinated Universal Time) https://maticz.com/cryptocurrency-payment-gateway-development

@Ameliasebastian #white #crypto

star

Wed Dec 18 2024 13:24:28 GMT+0000 (Coordinated Universal Time) https://www.accordiespartiti.it/accordi/internazionali/pink-floyd/wish-you-were-here-3/

@cinzia

star

Wed Dec 18 2024 13:11:55 GMT+0000 (Coordinated Universal Time) https://maticz.com/crypto-banking-software

@Ameliasebastian #white #crypto

star

Wed Dec 18 2024 12:59:15 GMT+0000 (Coordinated Universal Time) https://maticz.com/white-label-crypto-payment-gateway

@Ameliasebastian #white #crypto

star

Wed Dec 18 2024 11:28:50 GMT+0000 (Coordinated Universal Time) https://maticz.com/asset-tokenization-company

@Ameliasebastian #asset #tokenization

star

Wed Dec 18 2024 10:29:05 GMT+0000 (Coordinated Universal Time)

@vishalsingh21

star

Wed Dec 18 2024 10:19:09 GMT+0000 (Coordinated Universal Time) https://home.openweathermap.org/api_keys

@A_Znk

star

Wed Dec 18 2024 10:07:25 GMT+0000 (Coordinated Universal Time) https://www.emailsguru.com/ost/pst/

@adamsmith #osttopst #convertosttopst #osttopstconverter #ost #pst #emails #tools

star

Wed Dec 18 2024 10:03:12 GMT+0000 (Coordinated Universal Time) https://tobiasahlin.com/blog/hiding-an-element-if-its-empty/

@zaki

star

Wed Dec 18 2024 08:59:40 GMT+0000 (Coordinated Universal Time)

@ziaurrehman #html

star

Wed Dec 18 2024 07:46:43 GMT+0000 (Coordinated Universal Time)

@StefanoGi

star

Wed Dec 18 2024 06:45:55 GMT+0000 (Coordinated Universal Time)

@omnixima #javascript

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension