Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Friday, 29 March 2019

Lyft pops 21% on its first day of trading on Nasdaq, after raising $2.2B in its IPO at a $24B valuation

Ride-hailing startup Lyft may bear the distinction bearing highest net loss of any maiden public company ever going public, but despite that, it made its debut in a high gear this morning in. Trading as LYFT on Nasdaq, the company’s shares opened at nearly noon today at $87.24, a pop of 21 percent on the $72/share figure the company set last night, when it raised $2.34 billion from investors, valuing the company at $24 billion.

Expectations for how Lyft would do had already been high, after the company priced at the high end of its range of $70-72, which itself was an increase on the range it had set the prior week, a sign of strong demand from investors during its roadshow.

Lyft’s performance so far is a significant next chapter for the company and sets the stage for what to expect from other “gig economy” businesses when they go public — and notably, what we might expect from Uber, Lyft’s larger direct competitor.

(Indeed, Lyft’s strong showing is the first big tech IPO of the year, although many expect that it won’t be the last. In addition to Uber, among the tech startups expected to go public this year, Pinterest has also filed paperwork in recent weeks, and others like Slack and potentially Airbnb are also expected to be coming down the pike.)

The bigger question will be how Lyft handles the markets longer term, whether it continues to rise or faces the “Snap” effect.

Lyft is riding into Nasdaq fuelled by some very strong metrics. As a private startup, Lyft had raised $5.1 billion from a wide range of investors that include the likes of VCs like Andreessen Horowitz, as well as many strategics like Google, Rakuten and Didi, with its valuation climbing as high as $15 billion (note significant up-valuation with IPO).

Its 2018 revenues of nearly $2.2 billion are some of the highest-ever of any company ever going public (Google and Facebook have had  the two highest ever). The company took $8.1 billion in bookings last year on strong growth, and its network covers 30.7 million riders and 1.9 million drivers.

All encouraging numbers, except for some minor details. The first is that Lyft has yet to actually make a profit. It lost $911 million in 2018, the highest net loss for any company ever going public. With the company still in high-growth mode, it will continue spending to woo more riders and drivers and pick up more market share, and investing in new services and technology to augment its business in the future. In other words, on its current course, profits won’t come soon.

The second minor detail might also throw a spanner into Lyft’s engine: there are still many question marks hanging over how these services will grow relative to other macroeconomic forces, and specifically how government regulation will impact that. As one pre-emptive move to appeal (or appease) on that front, Lyft today also announced a new initiative it calls City Works, where Lyft will donate $50 million, or one percent of profits — whichever is larger — towards city transportation initiatives, beginning with Los Angeles.

In any event, this IPO is a way for the company to continue raising even more capital to fill up the tank to ride out and overtake all those challenges, while giving existing investors a chance to cash out on the growth so far — banking on the premise that there will be more investors willing to buy into the long-term promise that all of this will come good, and into the black, in the end.

There’s a lot riding on that pink moustache.



from TechCrunch https://ift.tt/2TGZt66
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support