• +598 29008192
  • info@servinfo.com.uy

Archivo del Autor: Belen De Leon

We found a massive spam operation — and sunk its server

For ten days in March, millions were caught in the same massive spam campaign.

Each email looked like it came from someone the recipient knew: the spammer took stolen email addresses and passwords, quietly logged into their email account, scraped their recently sent emails and pushed out personalized emails to the recipient of that sent email with a link to a fake site pushing a weight loss pill or a bitcoin scam.

The emails were so convincing more than 100,000 people clicked through.

We know this because a security researcher found the server leaking the entire operation. The spammer had forgotten to set a password.

Security researcher Bob Diachenko found the leaking data and with help from TechCrunch analyzed the server. At the time of the discovery, the spammer’s rig was no longer running. It had done its job, and the spammer had likely moved onto another server — likely in an effort to avoid getting blacklisted by anti-spam providers. But the server was primed to start spamming again.

Given there were more than three million unique exposed credentials sitting on this spammer’s server, we wanted to secure the data as soon as possible. With no contact information for the spammer — surprise, surprise — we asked the hosting provider, Awknet, to pull the server offline. Within a few hours of making contact, the provider nullrouted the server, forcing all its network traffic into a sinkhole.

TechCrunch provided a copy of the database to Troy Hunt. Anyone can now check breach notification site Have I Been Pwned to see if their email was misused.

But the dormant server — while it was still active — offered a rare opportunity to understand how a spam operation works.

The one thing we didn’t have was the spam email itself. We reached out to dozens of people to ask about the email they received. Two replied — but only one still had a copy of the email.

The email sent by the spammer. (Image: supplied)

“The same mail appeared on three occasions,” said one of the recipients in an email to TechCrunch. “The subject was related to an email I had sent previously to that person so the attacker had clearly got access to his mailbox or the mail server,” the victim said.

The email, when clicked, would direct the recipient through several websites in quick succession to determine where they were located, based off their IP address. If the recipient was in the U.S., they’d be pushed to a fake CNN site promoting a bogus health remedy. In this case, the spammer was targeting U.K. residents — and most were directed to a fake BBC page promoting a bitcoin scam.

One of the fake page.s (Screenshot: TechCrunch)

The spammer had other servers that we had no visibility into, but the exposed server revealed many of the cogs and machinery to the operation. The server, running an Elasticsearch database, was well-documented enough that we found one of the three spam emails sent to our recipient.

This entry alone tells us a lot about how the spam operation worked.

A database record of one email sent by the spammer. (Screenshot: TechCrunch)

Here’s how it works. The spammer logs into a victim’s @btinternet.com email account using their stolen email address and password. The scammer pulls a recently sent email from their victim’s email server, which feeds into another server — like inbox87.host and viewmsgcs.live — tasked with generating the personalized spam email. That email incorporates the subject line of the sent email and the target recipient’s email address to make it look like it’s being sent from the real person.

Once the message is ready to send, it’s pushed through a proxy connection, designed to mask where the email has come from. The proxy server is made up of several cell phones, each connecting to the internet over their cellular connection.

Each spam message is routed through one of the phones, which occasionally rotates its IP address to prevent detection or being flagged as a spammer.

Here’s what that proxy server looks like.

The proxy server comprised of several cell phones with rotating IP addresses. (Screenshot: TechCrunch)

Once the spam message leaves the proxy server, the spam message is pushed through the victim’s own email provider using their email address and password, making it look like a genuine email to both the email provider and the recipient.

Now imagine that hundreds of times a second.

Not only was the spammer’s Elasticsearch database leaking, its Kibana user interface was also exposed. That gave the spammer a detailed at-a-glance look at the operation in action. It was so granular that you could see which spam-sending domains were the most efficient in tricking a recipient into clicking the link in the spam email.

The spammer’s Kibana dashboard, displaying the operation at a glance. (Screenshot: TechCrunch)

Each spam email includes a tracker in the link that fed information back to the spammer. In bulk, that allows the spammer to figure out which email domain — like outlook.com or yahoo.com users — is more likely to click on a spam email. That can also indicate how an email provider’s spam filter acts. The greater number of clicks, the more likelihood of its spam going through — allowing the spammer to target specific email domains in the future.

The dashboard also contained other information related to the spam campaign, such as how many emails were successfully sent and how many bounced. That helps the spammer home in on the most valuable logins in the future, allowing them to send more spam for lower bandwidth and server costs.

In all, some 5.1 million emails were sent during the 10-day campaign — between March 8 and March 18, with some 162,980 people clicking on the spam email, according to the data on the dashboard.

It’s not the first time we’ve seen a spam operation in action, but it’s rare to see how successful it is.

“This case reminds me on several other occasions I reported at some points in the past — when malicious actors create a sophisticated system of proxying and logging, leaving so much tracks to identify their patterns for authorities in the investigations to come,” Diachenko told TechCrunch. “This shows us — again! — how important a proper cyber hygiene should be.”

What’s clear is that the spammer knows how to cover their tracks.

The language settings in the Kibana instance suggested the spammer may be based in Belgium. We found several other associated spamming domains using data collected by RiskIQ, a cyberthreat intelligence firm, which scours the web for information. Of the domains we found, all were registered with fake names and addresses.

As for the server itself, the provider said it was possibly hacked.

“This was a resold box and the customer already responded to the abuse forward saying it was supposed to have been terminated long ago,” said Awknet’s Justin Robertson in an email to TechCrunch.

Since the hosting provider pulled the spammer’s server offline, several of their fake sites and domains associated with the spam campaign no longer load.

But given the spread of domains and servers propping up the campaign, we suspect the sunken server is only a single casualty in an otherwise ongoing spam campaign.


Got a tip? You can send tips securely over Signal and WhatsApp to +1 646-755–8849. You can also send PGP email with the fingerprint: 4D0E 92F2 E36A EC51 DAAE 5D97 CB8C 15FA EB6C EEA5.


Source: TechCrunch

Search giant Baidu has driven the most autonomous miles in Beijing

While the public is asking, “When are we going to ride in autonomous cars?” Technology companies have been moving apace to test them on designated roads. In China’s capital city Beijing, eight firms drove a total of 153,600 kilometers (95442.6 miles) through their autonomous fleets in 2018, and Baidu, the country’s largest search engine service seen as a local answer to Google, has built a big lead.

That’s according to new data released by Beijing’s transportation regulators in their first report on the city’s licensed self-driving cars. While the authority did not specify conditions of the road tests, say, the number of instances when a human driver had to intervene to prevent an accident, namely the level of “disengagement” that California’s counterpart report asked for, Beijing’s data offers the public an early glimpse into a fledgling field.

Baidu registered nearly 140,000 kilometers in Beijing last year, representing about 91 percent of total self-driving distances traveled by the eight licensed transportation companies in the city. The firm’s leading position is closely linked to its pledge to go all out for artificial intelligence. When it comes to AI’s application in mobility, Baidu stays clear of making hardware and runs an open platform called Apollo that lets third-party developers tap its autonomous tech.

Apollo has joined hands with 135 car manufacturers, parts suppliers and other car allies at last count. Its partners range from international automakers Volvo and Ford, to local electric vehicle startups Byton and Nasdaq-listed NIO.

Baidu was also the first to nab a batch of L3 licenses to trial self-driving cars in Beijing, where Baidu is headquartered and is the country’s first city to allow such road tests. Robocars are now testing in more than ten Chinese cities, including first-tier Beijing and Shanghai as well as smaller urban centers like Changsha, where Baidu is working with the municipal government to bring 100 automated cabs to the city by end of this year.



The runner-up on Beijing’s road-test list, Pony.ai, lagged behind Baidu by a large margin at 10132.9 kilometers. But the three-year-old company has attracted large sums of investor money, in part thanks to the resume of co-founder James Peng, who was the former chief architect of Baidu’s autonomous driving unit. The southern China-based startup counts Sequoia Capital China as one of its seed investors and nearly reached $1 billion in valuation after raising $102 million in funding last July.

Other self-driving companies testing in Beijing included social and gaming giant Tencent, ride-hailing platform Didi Chuxing, and carmakers NIO, Audi AG, Daimler AG and Beijing’s state-owned BAIC Group. Didi, which made safety a priority across company divisions following two passenger murders last year, ran the least self-driving miles in Beijing last year but the company holds great potential to unlock mountains of car-hailing data that could help autonomous vehicles predict road conditions.

Notably missing from the list is Roadstar.ai, a self-driving startup that once rivaled Pony.ai and secured a record $128 million Series A round less than a year ago. Chinese tech news blog Liangziwei reported this week that shareholders are asking to dissolve and liquidate the Shenzhen and Silicon Valley-based firm following months of infighting among its senior executives.

Also unmentioned is Huawei, a potentially formidable player in autonomous driving. The telecom equipment maker’s foray into self-driving predates many other familiar names. Back in 2016, Huawei was among a group of tech firms and carmakers to form the Global Cross-industry 5G Automotive Association aimed at developing communications technology and commercial solutions for automated driving. Members of the alliance included Audi, BMW, Daimler, Ericsson, Intel, Nokia and Qualcomm. More recently, Huawei’s partnership with Audi brought more light to its ambition in autonomous tech, as it provided chipsets to power Audi’s L4 (which is more autonomous than L3) self-driving sedans.


Source: TechCrunch

Ford to offer hybrid and electric options in redesigned 2020 Escape SUV

Ford today is taking the wraps off the latest generation of the Escape . It’s a major re-work inside and out with new sheetmetal and powertrain options. The 2020 Escape is sportier, loaded with technology, and with hybrid and electric options, clearly built for the future.

The Escape has been Ford’s most affordable SUV since its debut in 2000. Smaller than the stalwart Explorer and more traditional than the Edge or Flex, Ford has always positioned the Escape as an easy and accessible sport utility vehicle. The upcoming version carries on that tradition while offering buyers new options.

The 2020 Escape comes in several variants. The base model sports a 1.5L EcoBoost engine or buyers can step up to a 2.0L EcoBoost. Ford is also offering the Escape in a traditional hybrid configuration and, for the first time, a plug-in hybrid setup. But buyers will have to wait for the plug-in version. This trim level will hit dealers next spring while the rest of the line will be available this fall.

Pricing hasn’t been released yet. The current Escape retails between $25k and $30k.

The driving range is competitive. Ford says the front-rear drive Escape equipped with the standard hybrid has an EPA-estimated range of 550 miles. The plug-in hybrid is expected to get 30 miles of range while just on electric while its 11 gallon fuel tank ensures it can still travel over 400 miles before needing a pitstop.

This is the second Escape generation offered in a hybrid setup but the first with a plug-in variant. Ford sold 114,000 hybrid Escapes between 2004 and 2012, but dropped the option for the current model line that debuted in 2012.

Ford has lofty ambitions for hybrid models. In 2018 the automaker stated it was going all-in on hybrid SUVs while stepping back from traditional cars. By 2020, Ford aims to have high-performance SUVs in market, including five with hybrid powertrains and one fully battery electric model. This includes the 2020 Ford Explorer Hybrid that should hit dealers this summer, and two entirely new off-road SUVs, including a new Bronco, and a small SUV that has yet to be named. There’s also that “performance battery electric utility” that will make up part of its overall SUV lineup, which is set for a 2020 release and will spearhead a plan to release six electric vehicle models by 2022. To help support this effort, the automaker/a> to add more production capacity at a second U.S. factory for its next-generation battery-electric vehicle program.

The Escape is available in either front-wheel drive or all-wheel drive configurations. At this time, though, the plug-in hybrid will only be offered with front-wheel drive while models equipped with the 250 HP 2.0L EcoBoost will only come paired with all-wheel drive.

Ford says the new Escape has best-in-class second-row legroom with a sliding backseat. While it steals a bit storage, this feature should make the backseat a bit more comfortable for passengers. Sadly, this option is only available in models feature gas engines. In the hybrid models, the battery pack lives under the rear seat, which prevents the seat from sliding — even still, by placing the battery under the seat, it doesn’t consume valuable storage space in the rear of the vehicle.

Ford made sure the Escape is equipped with a good assortment of standard and optional driver assist features. The standard suite includes Ford’s so-called Co-Pilot360 which includes automatic emergency breaking, rear view camera, andblind spot monitoring system. Other systems are options: parking assist, heads-up display, and adaptive cruise control.

An 8-inch touch screen is standard on SE models and features Ford’s Sync 3 system.

The outgoing Escape was in a need for an overhaul. Compared to its most direct competitors, car reviews often state the current Ford Edge falls short. Most reviews point to options like the Honda CR-V, Toyota RAV-4 and Mazda CX-5, stating they give drivers roomier cabins and offer lively powertrains. Ford released the third generation Escape in 2012 and updated the exterior in 2017 as sales were starting to falter.

Ford has big plans for its SUVs. In early 2018 it announced it was canceling production of all of its sedans leaving the Mustang as the only traditional car it sold in North America. The auto maker would instead turn to crossovers and SUVs to take the place of the Fusion, Taurus, Fiesta and Focus. Sales of traditional cars have been declining for years and Ford clearly felt it needed to embrace the latest trend by offering what most buyers want.

The 2020 Ford Escape is a notable leap forward for Ford’s smallest SUV. With the new hybrid options and larger interior, it should resonate well with shoppers looking for an eco-friendly people mover.


Source: TechCrunch

Lego Spike Prime Lets Kids Build Robots—and Confidence

Lego’s newest STEM set uses bright colors, friendly shapes, and a simple coding environment to get 11- to 14-year olds into robotics.
Source: Wired

10 Must-Know Tips for Mastering 'Sekiro: Shadows Die Twice'

There’s a lot to learn. Start here.
Source: Wired

Email client Spark lands on Android

Spark has managed to attract one million users on iOS and macOS over the years. But every time I’ve written about Spark, I’ve received many comments asking when the app would be available on Android. The answer is today.

Spark is an email client developed by Readdle, the company behind many popular productivity apps, such as PDF Expert, Scanner Pro, Calendars 5 and Documents. With email, the company is tackling a much bigger industry dominated by giants, such as Gmail and Microsoft Outlook.

That’s why Spark focuses on power-user features, customization and collaboration. The app is available for free and you can optionally pay to unlock more collaborative features.

The timing of the release is perfect as Google Inbox is shutting down this week. If you’re into smart email clients that automatically sort your inbox based on multiple criteria, Spark could fit the bill.

It starts with smart notifications. You can let Spark ignore non-relevant emails and notify you on important threads. Similarly, the Smart Inbox view puts newsletters and less important emails in separate categories so that you can focus on what’s important.

When it comes to dealing with individual threads, you can snooze them, schedule an email to send it at a later time and date, set up reminders and more. Many of those actions are now available in major email clients, so it’s important to know that you can find the same features in Spark.

Spark also lets you turn your inbox into a collaborative experience with your team, like Front. You can assign threads to other team members, comment on an email and @-mention your coworkers. You can also write a draft together pretty much like in Google Docs. Advanced features cost $6.39 per user per month.

Some features aren’t yet available on Android. The company is working on quick replies, email templates, email delegation for teams, the calendar view and third-party app integrations.


Source: TechCrunch

Chef goes 100% open source

Chef, the popular automation service, today announced that it is open sourcing all of its software under the Apache 2 license. Until now, Chef used an open core model with a number of proprietary products that complemented its open-source tools. Most of these proprietary tools focused on enterprise users and their security and deployment needs. Now, all of these tools, which represent somewhere between a third and half of Chef’s total code base, are open source, too.

“We’re moving away from our open core model,” Chef SVP of products and engineering Corey Scobie told me. “We’re now moving to exclusively open source software development.”

He added that this also includes open product development. Going forward, the company plans to share far more details about its roadmap, feature backlogs and other product development details. All of Chef’s commercial offerings will also be built from the same open source code that everybody now has access to.

Scobie noted that there are a number of reasons why the company is doing this. He believes, for example, that the best way to build software is to collaborate in public with those who are actually using it.

“With that philosophy in mind, it was really easy to justify how we’d take the remainder of the software that we product and make it open source,” Scobie said. “We believe that that’s the best way to build software that works for people — real people in the real world.”

Another reason, Scobie said, is that it was becoming increasingly difficult for Chef to explain which parts of the software were open source and which were not. “We wanted to make that conversation easier, to be perfectly honest.”

Chef’s decision comes during a bit of a tumultuous time in the open source world. A number of companies like Redis, MongoDB and Elasic have recently moved to licenses that explicitly disallow the commercial use of their open source products by large cloud vendors like AWS unless they also buy a commercial license.

But here is Chef, open sourcing everything. Chef co-founder and board member Adam Jacob doesn’t think that’s a problem. “In the open core model, you’re saying that the value is in this proprietary sliver. The part you pay me for is this sliver of its value. And I think that’s incorrect,” he said. “I think, in fact, the value was always in the totality of the product.”

Jacob also argues that those companies that are moving to these new, more restrictive licenses, are only hurting themselves. “It turns out that the product was what mattered in the first place,” he said. “They continue to produce great enterprise software for their customers and their customers continue to be happy and continue to buy it, which is what they always would’ve done.” He also noted that he doesn’t think AWS will ever be better at running Elasticsearch than Elastic or, for that matter, at running Chef better than Chef.

It’s worth noting that Chef also today announced the launch of its Enterprise Automation Stack, which brings together all of Chef’s tools (Chef Automate, Infra, InSpec, Habitat and Workstation) under a unified umbrella.

“Chef is fully committed to enabling organizations to eliminate friction across the lifecycle of all of their applications, ensuring that, whether they build their solutions from our open source code or license our commercial distribution, they can benefit from collaboration as code,” said Chef CEO Barry Crist. “Chef Enterprise Automation Stack lets teams establish and maintain a consistent path to production for any application, in order to increase velocity and improve efficiency, so deployment and updates of mission-critical software become easier, move faster and work flawlessly.”


Source: TechCrunch

By 2080, Tropical Diseases Could Be Headed to Alaska

Under one pessimistic climate change forecast, mosquitoes could expand their range all the way to the Arctic, redefining what we mean by ‘tropical’ diseases.
Source: Wired

Bowflex SelectTech adjustable dumbbells on sale for $200 (save $100) – CNET

Raise your home-gym game with this stellar dumbbell set, which quickly and easily adjusts from 5 to 52.5 pounds.
Source: CNET

Gmail gets message scheduling, Facebook wants to ad news transparency video – CNET

Today’s major tech stories include Gmail’s new message scheduling feature, Facebook’s news transparency initiative and Sony’s Aibo robo-dog not being able to be sold in Illinois.
Source: CNET

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086