text:
WeirdItaly | January 22, 2023 January 22, 2023 | Essential Information, Featured, Latest Italian News and Videos, Magazine
Latest Italian News and...
Top Italian Regions by...
1 List of Italian regions by GDP (2021)
1.1 GDP of Italy (2021, in millions of Euros)
1.2 GDP of Italy by Region (2021, in millions of Euros)
List of Italian regions by GDP (2021)
In 2021, the gross domestic product of Italy was 1.78 trillion euros, an increase of more than 20 billion euros compared to the previous year. The region with the highest GDP that year was Lombardia, with 405,266.8 million euros, followed by Lazio (197,709 million euros). The regions with the lowest GDP were the regions of Valle d'Aosta, Molise, and Basilicata.
The Italian regions are the 20 administrative divisions that make up the Republic of Italy. These regions vary greatly in terms of population, culture, and economic strength. One way to measure the economic strength of a region is by its gross domestic product (GDP), which is the total value of goods and services produced within a given area in a given year. GDP is a widely used indicator of a region's economic strength and can be used to compare the economic performance of different regions. In this article, we will take a closer look at the top five Italian regions by GDP in 2021 and explore what makes them economically strong.
It is worth noting that these data can be subject to change and the GDP may not be the only indicator of the economic strength of a region. Other factors such as the unemployment rate, standard of living, and infrastructure also play a significant role in determining the overall economic health of a region.
According to data from the Italian National Institute of Statistics (ISTAT), the following are the Italian regions by GDP in 2021.
GDP of Italy (2021, in millions of Euros)
Total: 1 782 050
North: 1 009 477
Centre: 377 616
South: 270 830
Islands: 122 917
GDP of Italy by Region (2021, in millions of Euros)
Region 2019 2020 2021
Lombardia 374 839.8 405 266.8 405 266.8
Lazio 201 986.6 185 841.0 197 709.9
Veneto 166 519.3 152 682.8 164 392.2
Emilia-Romagna 163 052.2 152 246.3 163 652.1
Piemonte 137 941.3 126 867.2 136 280.8
Toscana 122 179.0 107 959.1 114 925.7
Campania 111 065.0 102 581.8 110 124.6
Sicilia 89 242.2 83 555.9 88 370.1
Puglia 75 832.2 71 124.6 76 316.3
Liguria 50 237.0 45 478.0 48 761.2
Trentino Alto-Adige 47 311.2 44 147.6 47 281.3
Marche 42 666.0 39 322.5 42 256.9
Friuli-Venezia Giulia 39 306.2 36 614.1 39 104.1
Sardegna 35 127.5 32 184.2 34 547.1
Calabria 33 337.4 30 961.6 32 692.0
Abruzzo 32 936.4 30 317.2 32 588.1
Umbria 22 978.7 21 082.4 22 724.2
Basilicata 12 672.0 11 431.6 12 746.7
Molise 6 487.5 6 043.6 6 362.5
Valle d'Aosta 4 868.7 4 446.1 4 739.4
List of Italian regions by GDP (2021,in millions of Euros)
Lombardia (405,266, in millions of Euros)
Lombardia, located in the north of Italy, is the wealthiest region in Italy, with a GDP of €405,266 million in 2021. The region is home to the city of Milan, which is a major center of finance, fashion, and industry. Lombardia also has a strong agricultural sector and is known for its production of wine and cheese. The region's strategic location, excellent transportation infrastructure, and highly skilled workforce make it an attractive destination for businesses and investors.
Lazio (197,709)
Lazio, located in the central Italy, is the second wealthiest region in Italy, with a GDP of €197,709 million in 2021. The region is home to the city of Rome, which is the capital of Italy and a major tourist destination. Lazio also has a strong agricultural sector and is known for its production of wine and olive oil. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Veneto (164,392)
Veneto, located in the north of Italy, has a GDP of €164,392 million in 2021. The region is home to the city of Venice, which is a major tourist destination and also has a strong agricultural sector and is known for its production of wine and fruits. Veneto is also home to a number of small and medium-sized enterprises, which specialize in the production of textiles, footwear, and furniture. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Emilia Romagna (163, 652.1)
Emilia Romagna, located in the north of Italy, is known for its production of food products such as Parmigiano-Reggiano cheese and Prosciutto di Parma ham. The region is also home to the cities of Bologna and Ferrara, which are major centers of industry and culture. Emilia Romagna has a highly skilled workforce and a well-developed transportation infrastructure, which make it an attractive destination for businesses and investors.
Piemonte (136,280.8)
Piemonte, located in the northwest of Italy, is known for its production of wine and high-quality food products. The region is home to the city of Turin, which is a major industrial center and a center of the automotive industry. Piemonte is also home to many small and medium-sized enterprises that specialize in precision engineering, advanced technology, and environmental protection. The region's high-quality education system and research centers also make it a hub for innovation and entrepreneurship.
Toscana (114,925.7)
Toscana, located in the center of Italy, is known for its beautiful landscapes, rich cultural heritage, and high-quality tourism industry. The region is home to many historical towns, such as Florence, Siena and Pisa, which are major tourist destinations. Toscana also has a strong agricultural sector and is known for its production of high-quality wines, olive oil and fruits. The region's high-quality education system and research centers also make it a hub for innovation and entrepreneurship.
Campania (110,124.6)
Campania, located in the southern Italy, is the third wealthiest region in Italy, with a GDP of €110,124 million in 2021. The region is home to the city of Naples, which is a major port and industrial center. Campania also has a strong agricultural sector and is known for its production of fruits and vegetables. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Sicilia (88,370.1)
Sicilia, located in the south of Italy, is the largest island in the Mediterranean Sea. The region is known for its beautiful coastline, which includes the famous Aeolian and Egadi Islands. The region's economy is largely based on tourism, with many tourists visiting the region to enjoy its beaches, fishing villages, and scenic walks. Sicilia is also home to a number of small and medium-sized enterprises, which specialize in the production of high-quality food products, textiles and furniture. The region is also a major producer of olive oil, wine and citrus fruits.
Puglia (76,316.3)
Puglia, located in the south-eastern Italy, is known for its beautiful coastline, which includes the famous Salento and Gargano Peninsulas. The region's economy is largely based on tourism, with many tourists visiting the region to enjoy its beaches, fishing villages, and scenic walks. Puglia is also home to a number of small and medium-sized enterprises, which specialize in the production of high-quality food products, textiles and furniture. The region is also a major producer of olive oil and wine.
Liguria (48,761.2)
Liguria, located in the northwest of Italy, is known for its beautiful coastline, which includes the famous Cinque Terre and the Gulf of Genoa. The region's economy is largely based on tourism, with many tourists visiting the region to enjoy its beaches, fishing villages, and scenic walks. Liguria is also home to a number of small and medium-sized enterprises, which specialize in the production of high-quality food products and textiles.
Trentino Alto Adige (47,281.3)
Trentino Alto Adige, located in the north of Italy, is known for its beautiful alpine scenery and high-quality tourism industry. The region is home to many ski resorts, hiking trails, and other outdoor activities, which attract tourists from all over the world. Trentino Alto Adige also has a strong agricultural sector and is known for its production of high-quality fruits and vegetables, as well as its wine and dairy industries. The region's high-quality education system and research centers also make it a hub for innovation and entrepreneurship.
Marche (42,256.9)
Marche, located in the center of Italy, is known for its beautiful landscapes and rich cultural heritage. The region has a strong agricultural sector and is known for its production of high-quality fruits, vegetables, and olive oil. Marche is also home to many small and medium-sized enterprises, which specialize in the production of footwear, machinery, and other goods. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Friuli Venezia Giulia (39,104.1)
Friuli Venezia Giulia, located in the northeast of Italy, is known for its diverse and dynamic economy. The region has a strong agricultural sector and is known for its production of high-quality wines, fruits, and vegetables. Friuli Venezia Giulia is also home to many small and medium-sized enterprises, which specialize in the production of textiles, machinery, and other goods. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Sardegna (34,547.1)
Sardegna, located in the west of Italy, is the second largest island in the Mediterranean Sea. The region is known for its beautiful coastline, which includes the famous Costa Smeralda and the Gulf of Orosei. The region's economy is largely based on tourism, with many tourists visiting the region to enjoy its beaches, fishing villages, and scenic walks. Sardegna is also home to a number of small and medium-sized enterprises, which specialize in the production of high-quality food products, textiles and furniture. The region is also a major producer of olive oil and wine.
Calabria (32,692.0)
Calabria, located in the south of Italy, is known for its beautiful coastline, which includes the famous Costa degli Dei and the Gulf of Squillace. The region's economy is largely based on tourism, with many tourists visiting the region to enjoy its beaches, fishing villages, and scenic walks. Calabria is also home to a number of small and medium-sized enterprises, which specialize in the production of high-quality food products, textiles and furniture. The region is also a major producer of olive oil and wine.
Abruzzo (32,588.1)
Abruzzo, located in the south-central Italy, is known for its beautiful landscapes, rich cultural heritage and high-quality tourism industry. The region is home to many historical towns, such as L'Aquila and Chieti, which are major tourist destinations. Abruzzo also has a strong agricultural sector and is known for its production of high-quality wines, olive oil and truffles. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Umbria (22,724.2)
Umbria, located in the center of Italy, is known for its beautiful landscapes, rich cultural heritage and high-quality tourism industry. The region is home to many historical towns, such as Perugia and Assisi, which are major tourist destinations. Umbria also has a strong agricultural sector and is known for its production of high-quality wines, olive oil and truffles. The region's high-quality education system and research centers also make it a hub for innovation and entrepreneurship.
Basilicata (12,746.7)
Basilicata, located in the south-western Italy, is known for its beautiful landscapes, rich cultural heritage and high-quality tourism industry. The region is home to many historical towns, such as Matera, which is a UNESCO World Heritage Site. Basilicata also has a strong agricultural sector and is known for its production of high-quality fruits and vegetables, as well as its wine and dairy industries. The region is also rich in natural resources such as coal and oil.
Molise (6,362.5)
Molise, located in the south-central Italy, is known for its beautiful landscapes, rich cultural heritage and high-quality tourism industry. The region is home to many historical towns, such as Campobasso and Isernia, which are major tourist destinations. Molise also has a strong agricultural sector and is known for its production of high-quality wines, olive oil and truffles. The region's well-developed transportation infrastructure and highly skilled workforce make it an attractive destination for businesses and investors.
Valle d'Aosta (4,739.4)
Valle d'Aosta, located in the northwest of Italy, is the smallest and least populous region of Italy. Despite its small size and population, the region has a strong economy, thanks to its beautiful natural scenery, rich cultural heritage, and developed tourism industry. The region is home to many ski resorts, hiking trails, and other outdoor activities, which attract tourists from all over the world. Valle d'Aosta is also known for its production of high-quality wines and cheeses.
Featured image source: wikimedia
Weird Italy, Guide to Unusual & Amazing Places to see in Italy. Italy's news in English: Art, History & Facts
12 Iconic Animals in Italy and Where to Find Them
Pompeii 1972: Pink Floyd live
Illegal and Crazy Horse Street Racings videos in Italy
What happens if Mount Vesuvius erupts again?
Tags abruzzo, basilicata, campania, Economy of Italy, emilia romagna, Friuli Venezia Giulia, gdp, italy gdp, Lazio, liguria, lombardia, marche, Molise, piemonte, puglia, sardegna, sicilia, toscana, trentino alto adige, Umbria, valle d'aosta, veneto
Gaius Appuleius Diocles: The Greatest Roman Charioteer
Table of Contents1 Discover Italy's Largest Cities2 Italian Cities with more than 180,000 inhabitants sorted by resident population 3 Rome ... Read more
Table of Contents1 What's the Most Common Surname in Italy?1.1 The 50 Most Common Surnames in Italy1.2 The Most Common ... Read more
Select Category Entertainment (26) Essential Information (9) Event (1) Events (6) Featured (155) Italian Cinema (262) Action (17) Adventure (7) Animation (1) Comedy (67) Crime (17) Documentary (5) Drama (108) Erotic (2) Family (1) Fantasy (10) History (30) Horror (35) Italian Actresses & Actors (22) Italian cinema news (5) Italian Directors (33) Music (3) Mystery (29) Romance (17) Science Fiction (5) Shorts (5) Thriller (34) War (8) Western (18) Lab (2) Magazine (580) Italian Art, Design & Photography (35) Italian Books (9) Italian Dishes and Food (10) Italian History (407) Italian castles (91) Roman deities (197) Italian Luxury & Fashion (9) Italian People (40) Italy Crime News and Criminal Investigations (24) Latest Italian News and Videos (96) Nature in Italy (21) Sounds&Music from Italy (7) What to see in Italy (88) Uncategorized (2)


PHOENIX – A man was seriously injured Monday morning in Phoenix on Monday morning, police said.
According to the police, at 03:40 am, a vehicle drove north on 91st Avenue near Campbell when someone from another vehicle shot at it.
Officials said that a man drove the vehicle, was shot dead, and had life-threatening injuries. His vehicle came to a stop on 91st Avenue and there are no further details available at this time, Phoenix PD said. The identity of the victim or the suspicious information was not originally published.
Traffic is blocked from Indian School Road heading north to the south and Camelback Road at 91st Avenue. The police said traffic on Campbell on 91st Avenue is also closed.


text:
DeWitt earns Rookie of the Month award
PUBLISHED: June 12, 2008 at 12:00 a.m. | UPDATED: August 30, 2017 at 12:33 p.m.
SAN DIEGO – The Dodgers' Blake DeWitt was named the National League's Rookie of the Month for May on Wednesday, his latest accolade in a season no one could have predicted for a guy who started spring training in minor-league camp and was brought to the big-league side in early March only because two other third basemen were injured.
Now, with DeWitt having emerged as the Dodgers' everyday third baseman for the foreseeable future, those other two players have been forced to adjust.
Andy LaRoche became more versatile. He started Wednesday night's game with San Diego at first base and also is capable of playing second. And veteran Nomar Garciaparra, is expected to play shortstop when he begins a minor-league rehabilitation assignment later this week and probably will then man the position for the Dodgers until Rafael Furcal returns.
The only person who isn't surprised by DeWitt's story is DeWitt.
"This is just what I have been working to do," he said. "Obviously, it may have happened a little sooner than what was expected. The excitement is there, but as far as being surprised, that isn't there at all. I put all the work in to get to this point, and I don't think I should be surprised that I'm here."
DeWitt batted .290 in May, with five home runs and 18 RBIs.
Bennett update
Dodgers catcher Gary Bennett has suffered a setback in his minor-league rehab assignment with single-A Inland Empire. The assignment is really more about overcoming his yips throwing the ball back to the mound that it is about the plantar fasciitis in his left foot, but the setback is all about the foot.
"(It) is acting up again," Dodgers manager Joe Torre said. "(The throwing) has been more coming than going. He had one bad game, but everything else seemed pretty positive, and he felt pretty comfortable."
Danny Ardoin, who was promoted from triple-A Las Vegas when Bennett went onto the 15-day disabled list, will start for the fourth time in today's series finale with the Padres, the third time with Hiroki Kuroda pitching.
In Kuroda's first two starts with Ardoin behind the plate, the right-hander posted a 0.59 ERA, and he threw a four-hit shutout at the Chicago Cubs in his most recent start on Friday night.
Torre wouldn't deny that Ardoin has become Kuroda's "personal" catcher, especially with hot weather coming and Torre looking to rest Russell Martin more often. But that doesn't necessarily mean Bennett won't have a job when he is healthy enough to play.
"Bennett gives you (more) experience," Torre said. "Offensively, he is probably more of a force than Danny is. But we haven't been exposed (without Bennett)."
tony.jackson@dailynews.com

redpajama_set_name: RedPajamaCommonCrawl


Through an understanding that is clear of function, attaining it really is a lot easier. You can instantly keep in mind that a lady will not match you, not time that is wasting ineffective communication. If a lady instead prevents informing you of every Important (to you) information about her life, you shall straight away see What is missing, asking her about it before spending effort and time. The Concept of' i will feel she is immediately my destiny' will work for those whom a cure for a wonder.
We have been struggling to benefiting from things that are imaginary. Having an objective, you are feeling it is one thing genuine, something you is capable of. self- self- Confidence with what you wish develops the aspire to work, revitalizing your task. With an obvious picture of a bride that is russian the head, you instinctively commence to act therefore that to entice this woman. Whether you fully believe in Jesus or otherwise not, there was a greater capacity to assist us attaining our objectives. Prayer is nothing else given that development of a obvious picture of the objective, and also this technique works well with hundreds of years. perhaps maybe maybe perhaps perhaps perhaps perhaps Not pressing the impractical needs, you could get precisely what you aspire for.


text:
Q: Redirect to same domain with htaccess I want to redirect a user via htaccess when a specific HTTP_REFERRER is set. Here is my current htaccess
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^(.*)\.example.org [NC]
RewriteRule ^(.*)$ https://example.com/blocked/$1 [L,R]

The problem I am facing now is that the HTTP_REFERRER still persists and I end within an endles redirection to /blocked/blocked/blocked
Is there any easy way to simple redirect/forward the user just ones to /blocked?

A: You need to exclude the /blocked URI in Rewrite to avoid the loop error
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^(.*)\.example.org [NC]
RewriteCond %{REQUEST_URI} !/blocked
RewriteRule ^(.*)$ https://example.com/blocked/$1 [L,R]

redpajama_set_name: RedPajamaStackExchange


A single Gaston Ramirez wonderstrike meant that Fulham were beaten 1-0 by Sampdoria at Aldershot Town's EBB Stadium this evening.
The first half had very little in terms of chances, but it was Ibrahima Cisse who came closest for Fulham when he unleashed a drive from the edge of the box that was inches from the top corner.
The second half continued in the same vein of form, with very few chances between the two sides despite Fulham have the majority of the ball at Aldershot.
But it was the Italian side who took the lead through Gaston Ramirez, who collected Tim Ream's poor pass to unleash the ball into the top corner.
His kicking was a bit erratic in the first and put his defenders under undue stress. Showed some good reading of the game, however, and was quick off his line a number of times.
Showed some very nice early touches to beat his men down the flanks. Was probably Fulham's best player and there's a real decision to be made about what Jokanovic does with the teenager this season.
Looked decent and read the game well, but kept getting caught out with the ball over the top.
Good awareness from the Frenchman this evening, making sure he was in the right place at the right time to snuff out Sampdoria in the first half.
Was a decent outlet on the left, an unfamiliar position for the youngster but he did himself no harm in what was a confident performance.
Assured performance in the anchor role from McDonald who did well to plug the gap and marshal Sampdoria's attacking midfielders.
Got on the ball in the first half and tried to prove a point ahead of the new season. Played fairly well, although he blew hot and cold during the 90 minutes.
Did reasonably well in midfield and had a few nice touches without ever really raising the bar. Was subbed at half time.
Saw a lot of the ball early on but couldn't quite sort his feet out to get shots away. Got on the ball but struggled when breaking into the box.
Found the game hard to get into during his time on the pitch, although he showed glimpses of promises in between the lines.
Was on the ball a lot in the first half and looked the main man for Fulham, drifting from left across the midfield and controlling play.
Had a decent game after coming on, getting on the ball and trying to play the full backs in.
Added a bit of coolness in the Fulham midfield, showing some good vision and decent touches after coming on. Also looked good in the challenge too.
Didn't see too much of the football after coming on as he adjusted to pre-season.
Looked sharp again when coming on, making things happen when he was on the ball.
Decent performance but didn't do too much after coming on with about 20 minutes left in the tie.
Wasn't really able to get his attacking game going after coming on, but did okay defensively.
Showed some nice touches when coming on but didn't do too much of note.
Once again, the USA international looked confident on the ball in defence and did reasonably well, but gave away the ball cheaply for Sampdoria's goal.


text:
The Elder Scrolls Online on PS4: Your Questions Answered
Matt Firor Game Director, ZeniMax Online Studios
Note: Details around The Elder Scrolls Online online access have changed since this article was published.
We've gotten a ton of great questions from the PlayStation community, who are eager to learn more about the PS4 release of The Elder Scrolls Online. While we're still several months from the game's June release, we want to make sure we're keeping you up-to-date as things progress in development.
One question we've been frequently hearing is whether or not a PlayStation Plus membership will be required to play The Elder Scrolls Online on PS4. We kick off with the answer to that, followed by answers to several other questions you've submitted via Twitter. Thanks to everyone who submitted questions, and thanks for all your support. We love to hear from the community — keep the questions coming.
Will playing online with The Elder Scrolls Online have a separate subscription compared to PlayStation Plus? — @NathanaelMoner
A PlayStation Plus membership is not required to play The Elder Scrolls Online. PS4 players will only be required to pay the same monthly subscription associated with The Elder Scrolls Online that PC and Mac users will pay—nothing more.
Will PS4 servers be split between EU and NA, or will we be on one megaserver? — @TsoriGaming
They will be split. PS4 users will play The Elder Scrolls Online on either the European PS4 megaserver or the North American PS4 megaserver. We'll share more details about how this will work closer to launch.
Will PS4 users be on the same severs as PC users? — @Adzaofoz
PS4 users will have their own dedicated ESO megaservers (European and North American). PC and Mac users will not be on the PS4 megaservers. This is good news for PS4 players as they won't have to worry about contending with higher-level PC players when ESO launches on PS4.
How are you guys going to incorporate an action bar on console? Or what will the substitution be?? — @AdamJ_Floyd
We're still testing and tweaking different DualShock 4 button mapping configurations, but we're very happy with the gameplay experience on PS4. Abilities are conveniently accessible for fun "on the couch" gameplay, and the team is really happy with how it's coming along. We'll have more specifics to share about this topic later this year.
How will you be utilizing and using the touchpad on the PS4 controller in-game? — @SamiRocklynn
We love the additional functionality of the DualShock 4 touchpad. We're playing with a couple of different button configurations to find the best and most intuitive use for the touchpad.
How much space will it take up on the PS4 HDD? — @DexMProductions
While details aren't yet finalized, PS4 offers an HDD with a tremendous amount of memory. There is plenty of HDD memory available for the game and for years of continuous post-launch content that will be released for The Elder Scrolls Online.
How will the controls be mapped on PS4? Will it be similar to Skyrim on a controller? — @Brandon_Roark_
Throughout ESO's development, our goal has been to create an MMO that is fun to play and is familiar to Skyrim fans. Gameplay in ESO isn't identical to Skyrim, so naturally we've made some button configuration changes to reflect the differences, such as the use of abilities. At the same time, there are a lot of controller configuration similarities between Skyrim and ESO.
Will PvE instances, like dungeons, offer a single player mode? — @maheirem
The Elder Scrolls Online is an MMO that was designed to give the gamer freedom to play with others, or alone. That said, there are instances and areas that are specifically designed and tuned to be taken on with friends.
When does the PlayStation beta start? And when should we expect beta invites? — @Wretched86
We do not yet have a date or timeframe to share, but we can assure you that there will be an ESO beta exclusively for PlayStation 4 fans later this year. Keep an eye on elderscrollsonline.com, as well as here on PlayStation.Blog, for further details!
From all of us here on The Elder Scrolls Online team — a big thanks to the PlayStation community for being so supportive. If you haven't signed up for the PS4 ESO beta yet, you can do so here.
We'll see you in Tamriel on PS4 later this year!
bethesdaplaystation gamesthe elder scrolls onlinezenimax


text:
Q: How to access an object in a Wikipedia API, if the other objects names/keys keeps changing but the object to be accessed name/key remains the same? I want to obtain imaged from a Wikipedia API. I am doing front end development so I have to only "GET"  the images, no back end.
This is the general API:
https://en.wikipedia.org/w/api.php?action=query&titles=Image:Title_to_be_inserted_hered.jpg&prop=imageinfo&iiprop=url

When a title is inserted after image:, a list of objects is returned including the url of the image, which would later be inserted in the webpage.
However, after trying three titles (Italy, Einstein and Obama), the returned objects parameters are different, yet the URL object is always there.
You can notice that what comes after "Pages object" always changes.
Obama:
https://en.wikipedia.org/w/api.php?action=query&titles=Image:obama.jpg&prop=imageinfo&iiprop=url

Italy:
https://en.wikipedia.org/w/api.php?action=query&titles=Image:italy.jpg&prop=imageinfo&iiprop=url

Einstein:
https://en.wikipedia.org/w/api.php?action=query&titles=Image:einstein.jpg&prop=imageinfo&iiprop=url

All I want is to grab the URL (using Ajax or JSON) and store into a variable in my script file.

A: One way to do it would be to use Object.keys(obj). For example:
var pages = obj.query.pages,  // Get the pages object
    firstPage = pages[Object.keys(pages)[0]],  // Get the first page in the pages object
    src = firstPage.imageinfo[0].url;  // Get the first image url from the page above

Here's an actual example with the data from one of your examples:

var data = {"continue":{"iistart":"2007-04-19T23:10:16Z","continue":"||"},"query":{"normalized":[{"from":"Image:obama.jpg","to":"File:Obama.jpg"}],"pages":{"10783885":{"pageid":10783885,"ns":6,"title":"File:Obama.jpg","imagerepository":"local","imageinfo":[{"url":"https://upload.wikimedia.org/wikipedia/en/7/7a/Obama.jpg","descriptionurl":"https://en.wikipedia.org/wiki/File:Obama.jpg","descriptionshorturl":"https://en.wikipedia.org/w/index.php?curid=10783885"}]}}}};

var pages = data.query.pages,
    src = pages[Object.keys(pages)[0]].imageinfo[0].url;

document.write(src);

Substituting any of the API responses in for data will still return the first url in imageinfo.

A: Seems like pretty straightforward JSON structure on all 3 of those urls to me.
The structure is always
query -> pages -> imageinfo -> url

The information in the results does seem to change a bit, but the full image url seems to be under the same JSON structure as shown above.


International Baler Corporation (the "Company") is a manufacturer of baling equipment which is designed to compress a variety of materials into bales for easier handling, shipping, disposal, storage, and for recycling. Materials commonly baled include scrap metal, corrugated boxes, newsprint, aluminum cans, plastic bottles, and other solid waste. More sophisticated applications include baling of textile materials, fibers and synthetic rubber. The Company offers a wide variety of balers, standard models as well as custom models, and conveyors to meet specific customer requirements.
The Company's customers include recycling facilities, distribution centers, textile mills, and companies which generate the materials for baling and recycling. The Company sells its products worldwide with annual sales outside the United States typically ranging from 10% to 35%.
The accompanying unaudited financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America for interim financial information and with the instructions to Form 10-Q and Article 8-03 of Regulation S-X. Accordingly, they do not include all of the information in footnotes required by accounting principles generally accepted in the United States of America for complete financial statements. In the opinion of management, all adjustments (consisting of normal recurring accruals) considered necessary to make the financial statements not misleading have been included. Operating results for the six-month period ended April 30, 2016 are not necessarily indicative of the results that may be expected for the year ending October 31, 2016. The accompanying balance sheet as of October 31, 2015 was derived from the audited financial statements as of October 31, 2015.
The Company typically warrants its products for one (1) year from the date of sale as to materials and six (6) months as to labor, and offers services for other required repairs and maintenance. Service is rendered by repairing or replacing parts at the Company's Jacksonville, Florida facility, by on-site service provided by Company personnel who are based in Jacksonville, Florida or by local service agents who are engaged as needed. The Company maintains an accrued liability for expected warranty claims. The warranty accrual is based on historical warranty costs, the quantity and types of balers currently under warranty, and known warranty issues.
The carrying amounts of the Company's financial instruments, including cash and cash equivalents, certificates of deposit, accounts receivable, accounts payable, accrued liabilities, and customer deposits, approximate their fair value due to the relative short-term nature of these assets and liabilities.
Leland E. Boren, a stockholder and director of the Company, is the owner of Avis Industrial Corporation (Avis). Mr. Boren controls over 50% of the outstanding shares of the Company. Avis owns 100% of The American Baler Co., a competitor of the Company. On January 1, 2014, Avis acquired The Harris Waste Management Group, Inc., also a competitor of the Company. On July 31, 2014 The Harris Waste Management Group, Inc. acquired certain assets of IPS Balers, Inc. in Baxley, Georgia, another competitor of the Company. These baler companies operate independent of each other. The Company had no equipment sales to, or purchases from, these companies for the six months ended April 30, 2016 or in fiscal year ended October 31, 2015.
The Company has a $1,650,000 line of credit agreement with First Merchants Bank of Muncie, Indiana that was entered into on January 7, 2013. The line of credit allows the Company to borrow at an interest rate equal to the sum of the LIBOR Rate applicable to each interest period plus 2.39%. The line of credit is secured by all assets of the Company and has a term of two years. The credit agreement had been modified to extend the termination date to March 15, 2015. On February 26, 2015 the credit agreement was renewed with a termination date of May 15, 2017. The line of credit had no outstanding balance at April 30, 2016 and at October 31, 2015.
In July 2014 the Company financed a service truck by entering into a loan agreement with Ford Credit for $41,254. The note had a term of forty-eight months at an interest rate of 3.8%. The loan balance of $27, 382 was paid off during January 2016.
Tax assets are recognized in the balance sheet if it is more likely than not that they will be realized on future tax returns. Factors considered included, historical results of operations, volatility of the economic conditions and projected earnings based on current operations. Based on this evidence, it is more likely than not that the deferred tax assets would be realized. Accordingly, there is no valuation allowance as of April 30, 2016 and at October 31, 2015. However, if it is determined that all or part of the deferred tax assets will not be used in the future, an adjustment to the deferred tax assets would be charged against net income in the period such determination is made. As of April 30, 2016 and October 31, 2015, net deferred tax assets were approximately $55,000.
company and its insurance company agreed to settle this claim for $150,000. The Company was responsible for $75,000, one-half of the total settlement amount. During the fourth quarter of fiscal 2014, the Company accrued an additional $50,000 for a total accrued liability of $75,000 related to this settlement. This settlement amount was paid in the first quarter of fiscal 2015, and the case has been closed.
On December 26, 2013 the Company was served with a civil action filed by Georgetown Paper Stock of Rockville, Inc. for breach of warranties. In November 2014, a jury returned a verdict in favor of the Plaintiff, Georgetown Paper Stock of Rockville, Inc. in the amount of $368,248. The Company was responsible for $277,968 of this amount and its dealer, BE Equipment, Inc., was responsible for $90,280. The baler involved in this claim will be returned to the Company. The Company recorded an accrued liability of $285,000 and an asset in transit of $85,000 resulting in net expense of $200,000 in the fourth quarter of fiscal 2014. The payments were made in the first quarter of fiscal 2015. The baler was returned in the second quarter of fiscal 2015.
In November 2014, the Company agreed to a Consent Order with the Florida Department of Environmental Protection to remove solid waste sand blasting material from its property. The Company recorded an accrued liability of $291,000 as of October 31, 2014, for the cost of the removal of this material. The removal of the sand blasting material was completed in January 2015.
The Company had outstanding commitments relating to standby letters of credit for performance and warranty guarantees of approximately $503,000 at April 30, 2016 and $963,000 at October 31, 2015. These letters of credit are collateralized by certificates of deposit which have expiration dates which coincide with the expiration dates of the letters of credit. Certificates of deposit of $309,308 at April 30, 2016 and $308,501 at October 31, 2015 which mature in one year or more are included in other assets in the accompanying balance sheet.
The following discussion should be read together with our unaudited financial statements and the related notes thereto included in Part I, Item 1 "Financial Statements". For further information, refer to the Company's Annual Report on Form 10-K for the year ended October 31, 2015, and the Management Discussion and Analysis of Financial Condition and Results of Operations included in this Form 10-Q.
In the second quarter ended April 30, 2016, the Company had net sales of $2,653,571 compared to net sales of $3,662,674 in the second quarter of fiscal 2015, a decrease of 27.6%. The decrease in net sales was the result of significantly lower shipments of balers, specifically, four auto-tie and two-ram balers in the second quarter of fiscal 2016 versus nine in the second quarter of fiscal 2015. The lower shipments of balers is attributed to general market conditions. Parts and service sales were significantly higher in the second quarter of fiscal 2016 due to several large rubber baler parts sales and three large project service repair orders.
The Company had a net loss of $56,131 in the second quarter of fiscal 2016, compared to net income of $50,761 in the second quarter of 2015. The lower net income in the second quarter of fiscal 2016 was the result of the lower shipments mentioned above, partially offset by lower selling and administrative expenses. The lower gross margins were the result of the lower net sales and the lower absorption of fixed overhead.
The Company had net sales of $6,233,398 in the first six months of fiscal 2016, compared to net sales of $6,847,355 in the same period of 2015, a decrease of 9.0%.The Company shipped seventy-four balers and conveyors at an average price of $78,000 in fiscal 2015 versus shipments of forty-six balers and conveyors at an average price of $104,000 in 2016.
The Company had net income of $12, 400 in the first six months of fiscal 2016 compared to net income of $32,219 in the prior year. The lower income and lower gross margins in 2016 was the result of the lower shipments in the first half of fiscal 2016 versus the first half of fiscal 2015, partially offset by lower selling and administrative expenses.
The sales order backlog was $2,850,000 at April 30, 2016 and $8,100,000 at April 30, 2015. The backlog in 2016 included eighteen balers and conveyors at an average price of $158,000 while the backlog in 2015 included thirty-five balers and conveyors at an average price of $231,000.
Net working capital at April 30, 2016 was $7,214,295 as compared to $7,426,846 at October 31, 2015. The Company currently believes that it will have sufficient cash flow to be able to fund operating activities for the next twelve months.
Average days sales outstanding (DSO) in the first six months of fiscal 2016 were 17.7 days, as compared to 36.1 days in the first six months of fiscal 2015. DSO is calculated by dividing the total of the month-end net accounts receivable balances for the period by six, and dividing that result by the average day's sales for the period (period sales ÷ 181).
During the six months ended April 30, 2016 and 2015, the Company made additions to plant and equipment of $289,307 and $42,079, respectively.
The Company has a $1,650,000 line of credit agreement with First Merchants Bank of Muncie, Indiana. The line of credit allows the Company to borrow at an interest rate equal to the sum of the LIBOR Rate applicable to each interest period plus 2.39%. The line of credit is secured by all assets of the Company. On February 26, 2015 the credit agreement was renewed with a termination date of May 15, 2017. The line of credit had no outstanding balance at April 30, 2016 and at October 31, 2015.
Management, with the participation of the Company's principal executive and principal financial officers, assessed the effectiveness of the Company's internal control over financial reporting as of April 30, 2016. This assessment was performed using the criteria established under the Internal Control-Integrated Framework established by Committee of Sponsoring Organization of the Treadway Commission ("COSO").
The Company's management, including CEO and CFO, confirm that there were no changes in the Company's internal control over financial reporting during the fiscal quarter ended April 30, 2016 that have materially affected, or are reasonably likely to materially affect, the Company's internal control over financial reporting.
On August 26, 2010, the Company was served with a wrongful death lawsuit filed by the Estate of a former employee who was fatally injured in a workplace accident while an employee of the Company. The accident occurred in September 2008. The Plaintiff demanded $2,500,000 to settle this claim. A motion to dismiss the Complaint was granted without prejudice in January 2012, allowing the Plaintiff the ability to file an amended Complaint. In July 2014, the Company filed a Motion for Summary Judgment to have the complaint dismissed. On December 1, 2014, the Company and its insurance company agreed to settle this claim for $150,000. The Company was responsible for $75,000, one-half of the total settlement amount. During the fourth quarter of fiscal 2014, the Company accrued an additional $50,000 for a total accrued liability of $75,000 related to this settlement. This settlement amount was paid in the first quarter of fiscal 2015, and the case has been closed.
On December 26, 2013 the Company was served with a civil action filed by Georgetown Paper Stock of Rockville, Inc. for breach of warranties. In November 2014, a jury returned a verdict in favor of the Plaintiff, Georgetown Paper Stock of Rockville, Inc. in the amount of $368,248.
The Company was responsible for $277,968 of this amount and its dealer, BE Equipment, Inc., was responsible for $90,280. The baler involved in this claim will be returned to the Company. The Company recorded an accrued liability of $285,000 and an asset in transit of $85,000 resulting in net expense of $200,000 in the fourth quarter of fiscal 2014. The payments were made in the first quarter of fiscal 2015. The baler was returned in the second quarter of fiscal 2015.
(a) The annual meeting of stockholders of the Company was held on April 18, 2016.
(b) The first item voted on was the election of Directors. William E. Nielsen, John J. Martorana and Lael E. Boren were elected as Class III Directors of the Company whose terms will expire in three (3) years at the annual meeting of stockholders to be held in 2019. The results of the voting were as follows: 4,200,725 votes for William E. Nielsen and 67,736 withheld, 4,200,725 for John J. Martorana and 67,736 withheld, 4,199,825 for Lael E. Boren and 68,636 withheld.
No matters were voted on at the meeting.


Trump is very proud of his new deal with Mexico. What was once called Nafta is now being called the "United States-Mexico Trade Agreement." While the core of the deal is the same, this new deal will leave out Canada.
A federal official overseeing over a trillion dollars worth of student loans has resigned, telling the nation Trump has abandoned protections for students.
A new study that monitored 20,000 Chinese people over 4 years says that air pollution can harm cognitive performance. This comes after the west coast has had some of the worst air pollution in the world.
Manu Ginobili has retired after 16 seasons with the San Antonio Spurs.
Odell Beckham Jr. just signed a deal with the New York Giants to make him the highest paid wide receiver in NFL history. This deal is worth $95 million over 5 years with $65 million guaranteed.
Eddie Murphy is expecting a 10th child. He is 57.


Mr. Falci served as the historical advisor and coordinator for the film �Gods and Generals�. He portrays Confederate General A.P. Hill at living history events across the country. His exuberance, passion and respect for the history of the period is legend. Patrick is making his second appearance at the Civil War Music Heritage Gathering. We are very pleased to have this popular speaker at the Windham encampment.


text:
/*exported CEP */
var CEP = function(value) {
	var cepMask = new StringMask('00000-000');
	if(!value) {
		return value;
	}
	var processed = cepMask.process(value);
	return processed.result;
};

redpajama_set_name: RedPajamaGithub


The Champion Paper Mill opened in 1893 and closed in 2012. It was Ohio's biggest paper mill, now it's the emptiest. Take a page from the pulp belt, fire up your iPad, and see what a 50 acre industrial graveyard looks like.


text:
Home Breaking Page 3
TERROR IN SWEDEN: Truck Crashes Into Stockholm Department Store, 3 Dead
Swedish Prime Minister Stefan Lofven says everything indicates that a truck which has crashed into a major department store in downtown Stockholm is "a...
Frum Man Suddenly Dies On Flight From Madrid To Miami; Was On Trip With...
A newly married young man from Eretz Yisroel was suddenly Niftar on board a flight from Madrid to Miami. The man, who has been identified...
Additional Manpower Requested in the Search for Missing Mevo Modi'im Man
Moshe Ilovitz, 37, of Mevo Modi'im, is still missing. He was last seen at the ttziyun of the Rashbi on Friday night before Lag...
Israel Ranks As 8th Most Powerful Country on Earth
From among the 80 countries ranked, the U.S. News and World Report ranked Israel as the 8th most powerful country in the world. Citing...
Mayor DeBlasio Releases Plan To Close 'Rikers Island'
New York City Mayor Bill de Blasio on Friday announced hopes that his administration will eventually be able to close the Rikers Island jail...
Charedi Women Banned For Protesting IDF Enlistment
A magesterial court in Tel Aviv issued a restraining order for numerous Charedi woman who had been arrested for protesting outside of the IDF...
TERROR: IDF Soldier in Critical Condition Following a Infiltration Near Beit El on Erev...
A 21-year-old IDF soldier was seriously injured on Friday morning when a terrorist slammed his head with a large stone after infiltrating an IDF...
4 Rockets Were Fired Towards the Golan Heights Early Tuesday Morning
Sirens sounded close to 5:00AM on Tuesday morning in the Golan Heights as rocket launches towards Israel were detected. At precisely 4:52AM, sirens sounded...
BOMBSHELL: Judge and Investigator Removed From 'Case 4000' After Texts Reveal They Coordinated Rulings
A serious legal matter came to the fore in Israel on Sunday evening, which the legal system is taking very seriously. A series of...
All Polls Point to Likud
In the day since the Knesset announced that it would be holding early elections, numerous polling organizations conducted polls across the voter spectrum in...
Netanyahu to Be Questioned by Police for Sixth Time on Sunday
It has been reported that Prime Minister Binyamin Netanyahu will once again be questioned by police with regards to his involvement in what is...
Motzei Shabbos News Round-Up From Israel
Israel's Health Ministry updated that over the course of Shabbos, 1,386 people were found to have contracted the Coronavirus. The positive results were among...
Minyanim: An Observation by Rav Yitzchak Berkowits Shlita
by Rabbi Yair Hoffman for 5TJT.com Rav Yitzchak Berkowitz Shlita is one of the most prominent Poskim in Eretz Yisroel and is the go to...
Bug-a-Salt: A Halachic Analysis of 10 Pertinent Questions
By Rabbi Yair Hoffman for 5tjt.com It is a toy, of sorts, or a device - that wives across America are purchasing for their husbands. ...
United States Announces it Will Leave UNESCO in a Year
On Thursday the Trump administration announced that it would be pulling out of UNESCO, claiming that the cultural organization has displayed continuous "anti-Israel bias"...
Two Rockets Fired At Israel From Gaza
The Color Red siren sounded in the southwestern region of Israel on Sunday evening when two rockets were fired by terrorists at Israel. The...
VIDEO ROUNDUP: Violent Hafganah On Bar Ilan Street Over Construction of Jerusalem Light Rail
A large protest took place on Tuesday night in Jerusalem's Bar Ilan intersection where Admorim and the head of the Eidah Chareidis, Hagaon HaRav...
TERROR: 2 Israelis Shot Dead in Barkan Industrial Park; Palestinian Terrorist On The Loose
(VIDEOS & PHOTOS IN EXTENDED ARTICLE) Two Israelis were shot dead and a third was wounded Sunday morning in a terror attack at the Barkan...
German Chancellor Merkel Arrives In Israel For 24-Hour Visit; Will Visit Yad Vashem
German Chancellor Angela Merkel arrived in Israel for an official visit on Wednesday. The visit began at Ben Gurion Airport where she was received...
Toldos Avraham Yitzchak Protest on Sunday Due to Incarceration of the Rebbe's Grandson
With Rosh Hashanah shopping in full swing in Jerusalem's Geula neighborhood, Toldos Avraham Yitzchak on Sunday afternoon, 26 Elul, beginning at 1:15PM from the...
Photo Essay: Avos Ubanim Melavah Malka By Beis Medrash Beis Shmuel (Photos by JDN)
The Bereaved Schmerling Family Releases a Statement to the Press
The following message was released after the first day of Sukkos to the media by the extended family of Reuven Schmerling HY"D, whose body...
ISRAEL IN CHAOS: Riots, Violence In Multiple Cities – Attempted Lynching of Jew in...
Jewish-Arab violence and riots have erupted in numerous cities that have a mixed population of Arabs and Jews across Israel. The violence comes at...
SEE THE VIDEO: Police To Pay 15,000 NIS In Reparations To Chareidi Man Violently...
A Chareidi man who was beaten by a police officer after asking him why he was hitting a Chareidi minor, was awarded 15,000 NIS...
Baltimore: Orthodox Jewish Man Robbed At Gunpoint; Steal Wallet, Phone, Car Keys; 3 Thugs...
A Frum person was just robbed at gunpoint in the heart of the Baltimore Jewish Community. Sources tell YWN that the mugging happened at around...
Tzeva Adom Siren Heard in Jewish Towns in Gaza Periphery
At 22:16 on Sunday evening, Tzeva Adom sirens sounded in Jewish towns all across the Eshkol region that borders Gaza. The Sirens have sounded...
VIDEO: Friday Morning Terrorist Ramming Attack in the Jordan Valley Area
11:23AM IL: Three IDF soldiers were lightly injured in a vehicular ramming attack a short time ago near the Allenby Bridge Crossing to Jordan....
HATE IN LONDON: Van Driver Tells Chareidi Man 'Hitler Was Great' [VIDEO]
(VIDEO IN EXTENDED ARTICLE) A truck driver passing through London's predominantly Chareidi neighborhood of Stamford Hill, rolled down his window and began yelling Anti-Semitic statements at...
Toddler Struck By Car in Meah Shearim
A two-year-old infant belonging to a Charedi family was injured in a motor vehicle accident in Jerusalem. The accident occurred on Shivtei Yisroel Street near...
United Hatzalah Delivers Kimcha D'Pischa Early In Israel Due To Coronavirus
United Hatzalah volunteers across Israel have initiated a campaign working together with social services of local and regional councils to deliver food packages to...
No Shabbos HaGadol Drasha? Learn About Eruv Tavshilin!
by Rabbi Yair Hoffman for 5TJT.com This week, Shabbos HaGadol, most Rabbonim would have spoken about the upcoming need to make an eruv tavshilin. So...
Bereaved Mother of Two Slain Soldiers Wins Israel Prize for Social and Community Education...
Miriam Peretz has won the Israel Prize for her life's work in strengthening Jewish-Israeli identity. Peretz is the mother of Uriel and Eliraz Peretz,...
National Security Council of Israel Issues Travel Warnings For 28 Countries
Due to a high-level terror threat in some 34 countries, the National Security Council of Israel issued travel warnings for 28 countries in addition...
LIVE BLOG DAY 2 – UPDATED 6:46PM IL: Rocket Fire from Gaza Resumes
Israel during the predawn hours on Tuesday carried out a targeted assassination of Islamic Jihad commander in Gaza, Bahaa Abu Al Ata. This led...
FINAL VOTES COUNTED: New Right Not in Knesset; Yahadut HaTorah Loses a Seat, Likud...
The Central Election Committee has published the final tally of Knesset votes following Tuesday's election, and has confirmed that the New Right Party did...


text:
Regulatory, Governance and Policy Work
/ Academia
The Firm conducted an extensive Research Study on the 'Simplification and promotion of laws and procedures for Corporatization of Small & Medium Enterprises (SMEs)' – for the Securities and Exchange Commission of Pakistan (SECP) and the Ministry of Industries and Production, Government of Pakistan (MOIP), funded by the World Bank. The Study involved the designing of a comprehensive and proactive strategy to collect relevant information on the SMEs, a detailed review of the legal and regulatory framework for the Corporatization of SMEs, development of a policy framework for the Corporatization of SMEs and the designing and initiation of a promotional strategy for the Corporatization of SMEs.
The Firm also conducted a comprehensive Research Study titled 'Harmonizing the Code of Corporate Governance with other Laws/Regulations in Pakistan.' The Research Study was conducted for the Securities and Exchange Commission of Pakistan (SECP) and funded by the United Nations Development Program (UNDP). The Research Study involved review and comparison of the Pakistani Code and twenty two Pakistani laws to gauge the nexus, overlap and conflicts, review of other national codes and their implementation mechanisms, proposals for amendments to the Code and other laws for harmonization of regulatory framework of the corporate sector and proposals for policy guidelines for effective implementation of the Code.
The Firm produced an exhaustive Country Report titled "Comparative Analysis of Corporate Governance in South Asia: Chartering a Roadmap for Bangladesh". The Country Report was authored for the Bangladesh Enterprise Institute and commissioned by DFID. The Country Report outlines, discusses and critically evaluates the corporate governance legal regime in Pakistan and is co-authored with the economics faculty at the Lahore University of Management Sciences (LUMS). The Country Report looks not just at the various statutory instruments and case law on the subject but the recent regulatory codes and guidelines, such as the Code of Corporate Governance introduced by the Securities and Exchange Commission of Pakistan (SECP) in the recent past.
Minto & Mirza's commitment to pro bono work has resulted in valuable experience in the field of environmental law - the firm has been responsible for the legal documentation for conservation and rehabilitation of the historical sites of Uch Sharif in the Bahawalpur District of Southern Punjab.
The Firm's commitment to legal academia is reflected by the fact that the Partners of the Firm have regularly taught law courses and participated in specialized law moots, seminars and workshops in the areas of constitutional law, human rights, corporate governance and securities laws. The Firm's Senior Consultant has lectured and participated in seminars, held at diverse fora in Pakistan as well as internationally.


pretty certain. Nobody could invent these stories.
conservative black or brown shade or face a warning.
the warning came from HR rather than the woman's own boss?
But I'm more curious about what you think. Does your company have a dress and/or hair code?
official advice to return to brown or face dismissal?
That is very interesting in deed, Lucky! If the hair coloring was professionally done & looked good, I don't see what the problem is. No two women or men are the same. I would think that if she looked professional, then her hair color shouldn't be that big of an issue.
I can't wait to see how our community members weigh in on this subject.
Berta, That is why I posted it. To get community reaction.
I can see both sides of the coin. She works for a fashion company. The fashion industry needs to be cutting edge at all times and uphold a reputation so that people will buy their products. If the company gains a negative view point and looses popularity, then their interest goes down.
As far as working in a different industry, the dress code maybe different. Most companies are on the conservative side and "require" their employees to basically do the same. Human resources unfortunately, usually winds up being the bad guy. Let us not assume that the original request of change did NOT come from this woman's boss. A lot depends on the structure of a company. Its all about a chain of command. It's that simple.
Luckiest, I find hair color to be a very interesting dress code topic. Hum, hair color could cause an employee to face disciplinary action? I have worked in the corporate world and never heard of hair color or style being a problem. It must have been company specific and regional, especially if the hair color was well perceived by co-workers as it seemed. The employer might have thought that clients could feel threatened somehow by this employee. Cultures in other countries has some very different beliefs that those of the American cultures. Also, unfortunately, people are stereotyped by hair color (e.g. dumb blondes). Although I am not an expert in the fashion industry, I would think being an employer in this industry might welcome an employee making a change to their appearance as long as it still looked professional and presentable. I could understand if the hair color was changed to something outrageous like a multi-tones of black, red and blonde, but that did not seem to be the case.
I am sure that the reason why you were not aware of this possible issue is because none of your co-workers have ever rocked the boat in this way. Could you just imagine a lawyer or doctor showing up to work with a rainbow colored mohawk? How about the company secretary (which is almost always the first person a client sees when walking into a corporate office)? I can guarantee you that clients would walk out as quickly as they came in, that is if the secretary even got the chance to sit at their desk because I am sure that the SECOND their boss saw that drastic change they would surely be give a different task somewhere in the BACK of the office until further steps can be taken to rectify the situation. It is unfortunate, but that IS the reality of society. I have witnessed, in my work experiences and not just in the corporate world, several of my co-workers receive a whole host of reprimands for various "fashion changes". Many, of course, were handed pink slips. The fashion industry is no different, if not worse. Each fashion company wants to portrait an image. An image that is popular with the crowd. If that image is about the younger wild side, than there is less of a problem. Case in point, how many "popular" full figured models do you know? I only know of one company that capitalized on this market. But there is an exception in every rule.
I implement a "Professional Attire" dress code at my office -- absolutely professional.
I go to length to implement this. Employees that stay with me for over six months are issued company suits -- they get to pick single or double breasted; I pay for the tailoring, fabric, and materials. Female employees are given a budget to purchase their professional attires -- but it is a generous budget.
Employees are then offered the option to purchase wool or felt fedoras out of their pay checks. Most purchase it because it looks amazing and they like the recognition it has when they go out. Both male and female employees are offered the option to buy cuff links for their "formal attires".
With all of this said, I know my office looks like a snap shot out of Mad Men -- or something in the 1930s. But it is how we brand ourselves. Our clients expect to see a spit and polish accountant when we are called -- and they pay for the privilege. Our referrals know that they are getting a very well dressed and professional looking accountant when they send clients our way.
So my employees know, they are to show up with nothing short of a very nicely put together professional attire. Several of the girls even went as far as dying their hair back to a solid shade because they held pride in the way the company is ran and the image it has.
The only time I have ever had hair issue was when one of the girls dyed it blue for Halloween. HR came down on it as being "unprofessional" -- not because she looked bad; but because the other females were resenting it. They felt that they took the effort to look nice -- and with one swoop, this blue hair made them all look unprofessional.
But for a good week, I had angry HR in my office telling me that I need to do something before they write her up and damage morale. The situation defused itself because the girl ultimately dyed her hair back. I have to say that I also disapprove of the eccentric hair color; but I wear a fedora and cuff links, that right there already makes me stand out in the 2000 era.
So while I understand her plight and the view of HR -- it ultimately boils down to what other perceive you as also. HR doesn't exists for the whole company; it's still ran by people and people are influenced by many things -- normally a complaint from somebody else (like in my case).
Tran, while your company offers a generous budget for work attire (which in my opinion is smart if you want to enforce company dress code) many companies do not. Many people who are just starting out in the professional world don't always have the funds to extend their already limited closet. I remember when I graduated and started interviews, I invested in one really good black suit and a few colored blouses and skirts. I did laundry often. I made it my business to set money aside from each pay check to add to my wardrobe. Within a years time I had what anyone would be proud to call a business collection of clothes.
The hair was never an issue simply because I worked in a professional atmosphere and I happened to be in a managerial position. That left absolutely no room for me to even think of something of the wall. Unfortunately, couldn't say the same for some of my co-workers who just didn't get it.
I am curious. How many of you professionals allow dress down Fridays?


Does urine therapy really work?
I heard a lecture from a supporter of urine therapy and he claimed that urine is not only good disinfection but also as rich source of minerals. To me, these two advice seemed contradictory.
In addition, the supporter emphasized one should use his own urine - and yet, as an example of the magical effect of urine therapy we got a story of a boy who was hooked by jellyfish but was saved by a nearby doctor who used urine of his own. Apart from that I see no reason why urine should work against toxins better than a water or a disinfection (they don't).
Though, I know a very qualified doctor who advocated this treatment. What do you think?
Evidence of uncultivated bacteria in the adult female bladder.
Urine is not sterile: use of enhanced urine culture techniques to detect resident bacterial flora in the adult female bladder.
When you take into account that bacteria grow on almost all surfaces which have a connection to the outside (like mouth, stomach, gut and so on) this is not really surprising that this is true for the bladder as well.
Urine might be a relatively low risk solution of choice to rinse a wound when nothing else is available, but otherwise I wouldn't recommend it.
Then think of what urine is used for: it is the way our body excretes all the water soluble stuff it doesn't need any more. The body makes a lot of effort here to concentrate the primary urine in our kidneys to recover all the stuff which is still needed and to save water. I wouldn't drink it and make my body go through the whole process of excretion again.
About the doctors: is there any hard evidence for that or is this only an anecdote? I get highly skeptical when I hear about such stories.
Not the answer you're looking for? Browse other questions tagged zoology toxicology health excreta or ask your own question.
How do rodenticides with delayed effect work?
Does THC excretion increase if urine volume increases?
Are vegetables really needed in our diet?
How does residual chlorine in tap water work?
If alcohol is a depressant, why does it makes certain people more hyperactive?
Can my dog really understand me?
Does cow urine have medicinal properties?
Does night mode on iPhone really help?
Why and how does falsifying sensory information work?
Is the chemical composition of urine detrimental or beneficial for a tree?


text:
Streaming Sunday Time Dumps: Patriot
By Julian Watkins On April 9, 2017
Typically, this is the point where I would extol the virtues of some awesomely ridiculous or ridiculously awesome movie or TV show I stumbled upon while surfing Netflix. Last week, for example, I hopped aboard the Undead Express to explore the Korean zombie film Train to Busan.
But, as we all know, the streaming world is so much larger than just Netflix. In keeping with the demands of my appetite for the buffet of media on offer, I must grow beyond the confines of Netflix alone. So without further ado, I present this Netflix Streaming Sunday Time Dump.
This week's entrée comes straight from Amazon Prime Video. It's a little show called Patriot.
Patriot is by and large the most engaging original show I've seen in a very long time. It's a sleepy, dreamy glimpse at the life of a CIA operative in a bit of an emotional slump. He gets sent to deliver some seed money to fund a revolution in Iran that is favorable to the interests of the US.
If that sounds boring or too political, well…
The main character, John Tavner, is in exile in the Netherlands due to a mission objective gone wrong.
He is riddled with guilt and malaise and writes incredibly on-the-nose folks songs that accurately detail his nefarious spy games. His wife is worried sick. His brother is a government man with an unusual affiliation with a mixed-race young boy that might be mixed race for a reason all too obvious. The other member of his old folk duo is desperately trying to track him down and sell a kayak.
It's impossible to go into too much detail without spoiling the fun; you just have to take the plunge and see this thing for yourself. Check out the trailer below.
https://youtu.be/nx-lLeKkqEQ
Julian Watkins
The MST3K Reboot Makes It Feel Like MST3K Never Left
Puppet Yoda Is Better Than Prequel Yoda
In Star Wars, Is Rey Really More Powerful Than Kylo Ren?
Netflix Sunday Time Dumps: Travelers
Justice League: The Snyder Cut Is Official; There Is No Turning Back …
© 2021 Lightgun Galaxy


text:
See How This Pennsylvania Store Makes the Most of Its Floor Space
Learn how to create your own jewelry store floor plan through the example of this elite store.
Trace Shelton Instore July 2015 Issue
The Vault at Kolman & Co.
After running Kolman Jewelers for 20 years, Michael Vesely gave himself a retirement gift: The VAULT. The building is a free-standing, two-story, 4,700 square-foot former bank building built in the late 1960s featuring poured concrete walls inside and out, curved glass skylights and plenty of natural light with 13-foot ceilings. After closing Kolman Jewelers in 2007, Vesely began a two-year journey to build out a location that would allow him to operate without employees and opened in 2009. "My biggest pet peeve in the old store was having to set up and tear down the cases every day," Vesely says. "And once you locked everything up, you couldn't work after hours. In the new building, I can work with people at 2 a.m. if I want to."
Vesely figures that the money saved on his own time and that of a staff paid for his "vault" within two years. "Payroll in 2007 was about $65,000 a year just for the hours it took to tear down and set up," he says. Today, Vesely and a contract goldsmith work from a fully equipped studio and casting room, and The VAULT is open seven days a week by appointment. — STORY BY TRACE SHELTON
➤ "As you walk through a door, there is a service counter immediately to your right that was converted from the old bank teller counter. To add to the ambience is a totally restored crystal chandelier in the double glass entry. Outside the vault, I have a line of silver jewelry and a collection of avant-garde jewelry. We also have some crystal and Mont Blanc accessories."
➤ "I wanted a diamond room like a lot of jewelers have to give their clients privacy, but we built a full-scale vault instead, including a vault door. The vault has display cases built in and storage units, including two presentation tables in the middle. I have as much display space in this vault as the 1,000-square-foot showroom I had before, and I never have to take them out or put them away. The vault is 20 feet by 14 feet with 12-foot ceilings so people don't get claustrophobic. It's separately air-conditioned for the clients' comfort. We have a breathing apparatus in here and an anti-locking mechanism inside so no one can lock us in. I put stainless steel in to act as a heat sink because the panels get warm."
➤ "There's a fully stocked bar set up and we used all the old lockboxes from the bank because they stay at a constant 50 degrees. We keep wine cool. We left the bullet-glass window from the bank as well for ambience. The room features a curved leather couch in front of an electric fireplace and TV. We also have a kids area with video games."
THE NIGHTCLUB
➤ "There is a nightclub for entertaining 20 or so people. The club, called 'V,' is available for clients' use. It's a 20-by-25-foot room with black and red leather seating and includes a TV, lighting system and sound system. There's a painting of Marilyn Monroe wearing diamonds with actual melee diamonds in it. The club has been used for several music videos."
➤ "The walls are a combination of hand-poured concrete and hand-painted steel by a local artist to match the granite and travertine floors. We were told that the hand-built oak walls in the conference room could never be duplicated. They are very typical to Frank Lloyd Wright style construction. There are also arch windows that were part of the original construction that could never be replaced. The store and vault are decorated with sketches and lithographs by Dali, Picasso and Chagall."
➤ "The basement is fitted with a commercial-style kitchen for entertaining."
THE RESTROOM
➤ "The restroom is decorated with a gold-plated brass sink and stamped concrete counter inlaid with watch and clock parts as a tribute to my father, who was a master watchmaker."
60-Minute Sale Creates Gold Rush for Illinois Jeweler
Selling Designs: Harry Friedman
Best Stores8 mins ago
Columns4 weeks ago
Christmas Isn't the Most Popular Day to Get Engaged Anymore


In YOUR usual disgusting rant you cast aspersions against both my family and me.
While I will ignore your customary boorishness, your allegations against my father deserved to be answered if only to set the record straight (not that I expect this will see the light of day on your site....If it does I anticipate your usual ugly comments to follow).
My father along with a number of other Jewish men in the Bothki ghetto were attempting to secure food for the children on the night the ghetto was liquidated along with other nearby ghettos.
His wife and children were apprehended separately from him. Clearly he had no idea what happened to them. The issue is fully detailed in my presentation.
This notwithstanding, your attempt to ridicule and belittle my family's tragedy is shameful though from you totally expected.
"My father along with a number of other Jewish men in the Bothki ghetto were attempting to secure food for the children"[*] -- that is an explanation which comes straight out of the Winona Ryder Cookbook of Plausible Explanations that Somehow Fail to Convince.
* In his talk at Northwestern University Chicago, in Jan. 2003 farber was quoted as saying that his father and a cousin "survived by jumping off a train headed for a concentration camp, while the rest of his family was killed in a Nazi gas chamber."


text:
Q: Is it possible to sort Kubernetes API list of ConfigMaps? Is it possible to sort Kubernetes API list of ConfigMaps?
Say you have an endpoint https://<DOMAIN>:6443/api/v1/namespaces/default/configmaps, and you are fetching the list of config maps. Is there any way to send a GET request with sorting params in the query?
For ex: https://<DOMAIN>:6443/api/v1/namespaces/default/configmaps?sort=name:DESC (which did not work)

A: As I know, you need to sort it by yourself.
k8s-api-cm-refer hasn't sort parameters.


text:
Home > Net Worth
Dateline's Keith Morrison Built His Net Worth on True Crime
By Danielle Letenyei
Dec. 23 2022, Published 12:07 p.m. ET
If you're a true crime junkie who tunes into NBC's Dateline regularly, you're most likely familiar with the suspenseful delivery of Keith Morrison. Morrison has been a host on the show for about 27 years.
Morrison's Dateline gig, telling all the details of murder mysteries, has turned him into a true crime icon. He has been parodied on Saturday Night Live (SNL) and has been the subject of several memes on social media. There's even an Instagram account, "Keith Leans On Things," dedicated to pictures of Morrison's trademark lean.
Source: Dateline NBC Facebook
"I've been doing this for a long time. I suppose I've built up over the years strange quirks that for some reason are familiar to people," Morrison told BuzzFeed News in 2017.
What is Keith Morrison's net worth?
Throughout his career as a journalist, Morrison has amassed a net worth of about $10 million, reports Celebrity Net Worth. He earns an annual salary of about $3 million. That's quite an accomplishment for the Canadian native, who started his career in the 1960s as a local TV reporter and anchor.
Television Journalist
Net worth: $10 Milion
Keith Morrison is a host of the popular true crime television show Dateline on NBC. Sometimes referred to as the 'Mister Rogers of murder,' Morrison has been interviewing murderers, serial killers, and the families of their victims since 1995.
Wife: Suzanne Langford Perry
Children: Six including stepson Matthew Perry
But journalism wasn't Morrison's first career choice. He went to college to study law but flunked out, GQ reported in 2019. Morrison also realized he wasn't destined to follow in his father's footsteps as a minister after a summer gig his father got him.
Morrison got his first reporting job when he was hired by his neighbor, who was the news editor at a local radio station. In 1973, Morrison joined Canada's CTV National News as a political reporter and news anchor.
Morrison worked with several Canadian news outlets in his early career. According to his bio on the NBC News website, Morrison won awards for his coverage of politics, a Middle East war, and the Boat People refugee saga during the aftermath of the Vietnam War.
A post shared by Keith Leans On Things (@keithleansonthings)
Source: Instagram/@keithleansonthings
In 1986, Morrison moved to Los Angeles to take a job as co-anchor of the nightly news at the NBC affiliate station KNBC-TV. After two years, he became the West Coast correspondent for NBC Nightly News and the TODAY show.
For a few years in the early 1990s, Morrison was called back to Canada to rejoin CTV. But the gig wasn't a good fit. Thankfully, he had been freelance reporting for NBC's Dateline show, which debuted in 1992. So, when Morrison was fired from CTV, he reached out to Dateline producers about getting a full-time spot on the show, GQ reports.
Morrison is known as the "Mister Rogers of murder."
Today, it's hard to imagine Dateline without Morrison. He has been called the "master of the macabre," "Mister Rogers of murder," and "grandaddy of true crime."
Morrison is often praised for his ability to remain calm and collected while conducting some tough interviews with murderers, serial killers, and families of their victims.
Don't frown —it's your birthday! 🎂 #HappyBirthdayKeith pic.twitter.com/Xxt8pTNYyI
— Josh Mankiewicz (@JoshMankiewicz) July 2, 2019
"He cares deeply about these stories, and he really connects to people in the field," Dateline executive producer Liz Cole told BuzzFeed News in 2017. "There are people he interviews that he keeps in touch with years and years later."
Keith Morrison is the stepfather to actor Matthew Perry.
Morrison met his wife, Suzanne Langford Perry, when he was a political reporter for CTV in Canada. At the time, she was press secretary for then-prime minister Pierre Trudeau. Morrison said he knew she was "the one" just seeing her in a video walking next to Trudeau, GQ reports.
The couple married in 1981 and have six children, including Friends actor Matthew Perry, who is Suzanne's son from a previous marriage.
Latest Net Worth News and Updates


text:
#include "SkCodec.h"
#include "SkJpegCodec.h"
#include "SkJpegDecoderMgr.h"
#include "SkJpegUtility_codec.h"
#include "SkCodecPriv.h"
#include "SkColorPriv.h"
#include "SkScaledCodec.h"
#include "SkScanlineDecoder.h"
#include "SkStream.h"
#include "SkTemplates.h"
#include "SkTypes.h"

// stdio is needed for libjpeg-turbo
#include <stdio.h>

extern "C" {
    #include "jpeglibmangler.h"
    #include "jerror.h"
    #include "jpegint.h"
    #include "jpeglib.h"
}

/*
 * Convert a row of CMYK samples to RGBA in place.
 * Note that this method moves the row pointer.
 * @param width the number of pixels in the row that is being converted
 *              CMYK is stored as four bytes per pixel
 */
static void convert_CMYK_to_RGBA(uint8_t* row, uint32_t width) {
    // We will implement a crude conversion from CMYK -> RGB using formulas
    // from easyrgb.com.
    //
    // CMYK -> CMY
    // C = C * (1 - K) + K
    // M = M * (1 - K) + K
    // Y = Y * (1 - K) + K
    //
    // libjpeg actually gives us inverted CMYK, so we must subtract the
    // original terms from 1.
    // CMYK -> CMY
    // C = (1 - C) * (1 - (1 - K)) + (1 - K)
    // M = (1 - M) * (1 - (1 - K)) + (1 - K)
    // Y = (1 - Y) * (1 - (1 - K)) + (1 - K)
    //
    // Simplifying the above expression.
    // CMYK -> CMY
    // C = 1 - CK
    // M = 1 - MK
    // Y = 1 - YK
    //
    // CMY -> RGB
    // R = (1 - C) * 255
    // G = (1 - M) * 255
    // B = (1 - Y) * 255
    //
    // Therefore the full conversion is below.  This can be verified at
    // www.rapidtables.com (assuming inverted CMYK).
    // CMYK -> RGB
    // R = C * K * 255
    // G = M * K * 255
    // B = Y * K * 255
    //
    // As a final note, we have treated the CMYK values as if they were on
    // a scale from 0-1, when in fact they are 8-bit ints scaling from 0-255.
    // We must divide each CMYK component by 255 to obtain the true conversion
    // we should perform.
    // CMYK -> RGB
    // R = C * K / 255
    // G = M * K / 255
    // B = Y * K / 255
    for (uint32_t x = 0; x < width; x++, row += 4) {
#if defined(SK_PMCOLOR_IS_RGBA)
        row[0] = SkMulDiv255Round(row[0], row[3]);
        row[1] = SkMulDiv255Round(row[1], row[3]);
        row[2] = SkMulDiv255Round(row[2], row[3]);
#else
        uint8_t tmp = row[0];
        row[0] = SkMulDiv255Round(row[2], row[3]);
        row[1] = SkMulDiv255Round(row[1], row[3]);
        row[2] = SkMulDiv255Round(tmp, row[3]);
#endif
        row[3] = 0xFF;
    }
}

bool SkJpegCodec::IsJpeg(SkStream* stream) {
    static const uint8_t jpegSig[] = { 0xFF, 0xD8, 0xFF };
    char buffer[sizeof(jpegSig)];
    return stream->read(buffer, sizeof(jpegSig)) == sizeof(jpegSig) &&
            !memcmp(buffer, jpegSig, sizeof(jpegSig));
}

bool SkJpegCodec::ReadHeader(SkStream* stream, SkCodec** codecOut,
        JpegDecoderMgr** decoderMgrOut) {

    // Create a JpegDecoderMgr to own all of the decompress information
    SkAutoTDelete<JpegDecoderMgr> decoderMgr(SkNEW_ARGS(JpegDecoderMgr, (stream)));

    // libjpeg errors will be caught and reported here
    if (setjmp(decoderMgr->getJmpBuf())) {
        return decoderMgr->returnFalse("setjmp");
    }

    // Initialize the decompress info and the source manager
    decoderMgr->init();

    // Read the jpeg header
    if (JPEG_HEADER_OK != chromium_jpeg_read_header(decoderMgr->dinfo(), true)) {
        return decoderMgr->returnFalse("read_header");
    }

    if (NULL != codecOut) {
        // Recommend the color type to decode to
        const SkColorType colorType = decoderMgr->getColorType();

        // Create image info object and the codec
        const SkImageInfo& imageInfo = SkImageInfo::Make(decoderMgr->dinfo()->image_width,
                decoderMgr->dinfo()->image_height, colorType, kOpaque_SkAlphaType);
        *codecOut = SkNEW_ARGS(SkJpegCodec, (imageInfo, stream, decoderMgr.detach()));
    } else {
        SkASSERT(NULL != decoderMgrOut);
        *decoderMgrOut = decoderMgr.detach();
    }
    return true;
}

SkCodec* SkJpegCodec::NewFromStream(SkStream* stream) {
    SkAutoTDelete<SkStream> streamDeleter(stream);
    SkCodec* codec = NULL;
    if (ReadHeader(stream,  &codec, NULL)) {
        // Codec has taken ownership of the stream, we do not need to delete it
        SkASSERT(codec);
        streamDeleter.detach();
        return codec;
    }
    return NULL;
}

SkJpegCodec::SkJpegCodec(const SkImageInfo& srcInfo, SkStream* stream,
        JpegDecoderMgr* decoderMgr)
    : INHERITED(srcInfo, stream)
    , fDecoderMgr(decoderMgr)
{}

/*
 * Return the row bytes of a particular image type and width
 */
static int get_row_bytes(const j_decompress_ptr dinfo) {
    int colorBytes = (dinfo->out_color_space == JCS_RGB565) ? 2 : dinfo->out_color_components;
    return dinfo->output_width * colorBytes;

}
/*
 * Return a valid set of output dimensions for this decoder, given an input scale
 */
SkISize SkJpegCodec::onGetScaledDimensions(float desiredScale) const {
    // libjpeg-turbo supports scaling by 1/8, 1/4, 3/8, 1/2, 5/8, 3/4, 7/8, and 1/1, so we will
    // support these as well
    long num;
    long denom = 8;
    if (desiredScale > 0.875f) {
        num = 8;
    } else if (desiredScale > 0.75f) {
        num = 7;
    } else if (desiredScale > 0.625f) {
        num = 6;
    } else if (desiredScale > 0.5f) {
        num = 5;
    } else if (desiredScale > 0.375f) {
        num = 4;
    } else if (desiredScale > 0.25f) {
        num = 3;
    } else if (desiredScale > 0.125f) {
        num = 2;
    } else {
        num = 1;
    }

    // Set up a fake decompress struct in order to use libjpeg to calculate output dimensions
    jpeg_decompress_struct dinfo;
    sk_bzero(&dinfo, sizeof(dinfo));
    dinfo.image_width = this->getInfo().width();
    dinfo.image_height = this->getInfo().height();
    dinfo.global_state = DSTATE_READY;
    dinfo.num_components = 0;
    dinfo.scale_num = num;
    dinfo.scale_denom = denom;
    chromium_jpeg_calc_output_dimensions(&dinfo);

    // Return the calculated output dimensions for the given scale
    return SkISize::Make(dinfo.output_width, dinfo.output_height);
}

bool SkJpegCodec::onRewind() {
    JpegDecoderMgr* decoderMgr = NULL;
    if (!ReadHeader(this->stream(), NULL, &decoderMgr)) {
        return fDecoderMgr->returnFalse("could not rewind");
    }
    SkASSERT(NULL != decoderMgr);
    fDecoderMgr.reset(decoderMgr);
    return true;
}

/*
 * Checks if the conversion between the input image and the requested output
 * image has been implemented
 * Sets the output color space
 */
bool SkJpegCodec::setOutputColorSpace(const SkImageInfo& dst) {
    const SkImageInfo& src = this->getInfo();

    // Ensure that the profile type is unchanged
    if (dst.profileType() != src.profileType()) {
        return false;
    }

    // Ensure that the alpha type is opaque
    if (kOpaque_SkAlphaType != dst.alphaType()) {
        return false;
    }

    // Check if we will decode to CMYK because a conversion to RGBA is not supported
    J_COLOR_SPACE colorSpace = fDecoderMgr->dinfo()->jpeg_color_space;
    bool isCMYK = JCS_CMYK == colorSpace || JCS_YCCK == colorSpace;

    // Check for valid color types and set the output color space
    switch (dst.colorType()) {
        case kN32_SkColorType:
            if (isCMYK) {
                fDecoderMgr->dinfo()->out_color_space = JCS_CMYK;
            } else {
                // Check the byte ordering of the RGBA color space for the
                // current platform
#if defined(SK_PMCOLOR_IS_RGBA)
                fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
#else
                fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA;
#endif
            }
            return true;
        case kRGB_565_SkColorType:
            if (isCMYK) {
                return false;
            } else {
                fDecoderMgr->dinfo()->out_color_space = JCS_RGB565;
            }
            return true;
        case kGray_8_SkColorType:
            if (isCMYK) {
                return false;
            } else {
                // We will enable decodes to gray even if the image is color because this is
                // much faster than decoding to color and then converting
                fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE;
            }
            return true;
        default:
            return false;
    }
}

/*
 * Checks if we can natively scale to the requested dimensions and natively scales the
 * dimensions if possible
 */
bool SkJpegCodec::nativelyScaleToDimensions(uint32_t dstWidth, uint32_t dstHeight) {
    // libjpeg-turbo can scale to 1/8, 1/4, 3/8, 1/2, 5/8, 3/4, 7/8, and 1/1
    fDecoderMgr->dinfo()->scale_denom = 8;
    fDecoderMgr->dinfo()->scale_num = 8;
    chromium_jpeg_calc_output_dimensions(fDecoderMgr->dinfo());
    while (fDecoderMgr->dinfo()->output_width != dstWidth ||
            fDecoderMgr->dinfo()->output_height != dstHeight) {

        // Return a failure if we have tried all of the possible scales
        if (1 == fDecoderMgr->dinfo()->scale_num ||
                dstWidth > fDecoderMgr->dinfo()->output_width ||
                dstHeight > fDecoderMgr->dinfo()->output_height) {
            // reset native scale settings on failure because this may be supported by the swizzler
            this->fDecoderMgr->dinfo()->scale_num = 8;
            chromium_jpeg_calc_output_dimensions(this->fDecoderMgr->dinfo());
            return false;
        }

        // Try the next scale
        fDecoderMgr->dinfo()->scale_num -= 1;
        chromium_jpeg_calc_output_dimensions(fDecoderMgr->dinfo());
    }
    return true;
}

/*
 * Performs the jpeg decode
 */
SkCodec::Result SkJpegCodec::onGetPixels(const SkImageInfo& dstInfo,
                                         void* dst, size_t dstRowBytes,
                                         const Options& options, SkPMColor*, int*) {
    // Rewind the stream if needed
    if (!this->rewindIfNeeded()) {
        return fDecoderMgr->returnFailure("could not rewind stream", kCouldNotRewind);
    }

    if (options.fSubset) {
        // Subsets are not supported.
        return kUnimplemented;
    }

    // Get a pointer to the decompress info since we will use it quite frequently
    jpeg_decompress_struct* dinfo = fDecoderMgr->dinfo();

    // Set the jump location for libjpeg errors
    if (setjmp(fDecoderMgr->getJmpBuf())) {
        return fDecoderMgr->returnFailure("setjmp", kInvalidInput);
    }

    // Check if we can decode to the requested destination and set the output color space
    if (!this->setOutputColorSpace(dstInfo)) {
        return fDecoderMgr->returnFailure("conversion_possible", kInvalidConversion);
    }

    // Perform the necessary scaling
    if (!this->nativelyScaleToDimensions(dstInfo.width(), dstInfo.height())) {
        return fDecoderMgr->returnFailure("cannot scale to requested dims", kInvalidScale);
    }

    // Now, given valid output dimensions, we can start the decompress
    if (!chromium_jpeg_start_decompress(dinfo)) {
        return fDecoderMgr->returnFailure("startDecompress", kInvalidInput);
    }

    // The recommended output buffer height should always be 1 in high quality modes.
    // If it's not, we want to know because it means our strategy is not optimal.
    SkASSERT(1 == dinfo->rec_outbuf_height);

    // Perform the decode a single row at a time
    uint32_t dstHeight = dstInfo.height();
    JSAMPLE* dstRow = (JSAMPLE*) dst;
    for (uint32_t y = 0; y < dstHeight; y++) {
        // Read rows of the image
        uint32_t rowsDecoded = chromium_jpeg_read_scanlines(dinfo, &dstRow, 1);

        // If we cannot read enough rows, assume the input is incomplete
        if (rowsDecoded != 1) {
            // Fill the remainder of the image with black. This error handling
            // behavior is unspecified but SkCodec consistently uses black as
            // the fill color for opaque images.  If the destination is kGray,
            // the low 8 bits of SK_ColorBLACK will be used.  Conveniently,
            // these are zeros, which is the representation for black in kGray.
            // If the destination is kRGB_565, the low 16 bits of SK_ColorBLACK
            // will be used.  Conveniently, these are zeros, which is the
            // representation for black in kRGB_565.
            if (kNo_ZeroInitialized == options.fZeroInitialized ||
                    kN32_SkColorType == dstInfo.colorType()) {
                SkSwizzler::Fill(dstRow, dstInfo, dstRowBytes, dstHeight - y,
                        SK_ColorBLACK, NULL);
            }

            // Prevent libjpeg from failing on incomplete decode
            dinfo->output_scanline = dstHeight;

            // Finish the decode and indicate that the input was incomplete.
            chromium_jpeg_finish_decompress(dinfo);
            return fDecoderMgr->returnFailure("Incomplete image data", kIncompleteInput);
        }

        // Convert to RGBA if necessary
        if (JCS_CMYK == dinfo->out_color_space) {
            convert_CMYK_to_RGBA(dstRow, dstInfo.width());
        }

        // Move to the next row
        dstRow = SkTAddOffset<JSAMPLE>(dstRow, dstRowBytes);
    }
    chromium_jpeg_finish_decompress(dinfo);

    return kSuccess;
}

/*
 * Enable scanline decoding for jpegs
 */
class SkJpegScanlineDecoder : public SkScanlineDecoder {
public:
    SkJpegScanlineDecoder(const SkImageInfo& srcInfo, SkJpegCodec* codec)
        : INHERITED(srcInfo)
        , fCodec(codec)
        , fOpts()
    {}

    /*
    * Return a valid set of output dimensions for this decoder, given an input scale
    */
    SkISize onGetScaledDimensions(float desiredScale) override {
        return fCodec->onGetScaledDimensions(desiredScale);
    }

    /*
     * Create the swizzler based on the encoded format.
     * The swizzler is only used for sampling in the x direction.
     */

    SkCodec::Result initializeSwizzler(const SkImageInfo& info, const SkCodec::Options& options) {
        SkSwizzler::SrcConfig srcConfig;
        switch (info.colorType()) {
            case kGray_8_SkColorType:
                srcConfig = SkSwizzler::kGray;
                break;
            case kRGBA_8888_SkColorType:
                srcConfig = SkSwizzler::kRGBX;
                break;
            case kBGRA_8888_SkColorType:
                srcConfig = SkSwizzler::kBGRX;
                break;
            case kRGB_565_SkColorType:
                srcConfig = SkSwizzler::kRGB_565;
                break;
            default:
                //would have exited before now if the colorType was supported by jpeg
                SkASSERT(false);
        }

        fSwizzler.reset(SkSwizzler::CreateSwizzler(srcConfig, NULL, info, options.fZeroInitialized,
                                                   this->getInfo()));
        if (!fSwizzler) {
            // FIXME: CreateSwizzler could fail for another reason.
            return SkCodec::kUnimplemented;
        }
        return SkCodec::kSuccess;
    }

    SkCodec::Result onStart(const SkImageInfo& dstInfo, const SkCodec::Options& options,
                            SkPMColor ctable[], int* ctableCount) override {

        // Rewind the stream if needed
        if (!fCodec->rewindIfNeeded()) {
            return SkCodec::kCouldNotRewind;
        }

        // Set the jump location for libjpeg errors
        if (setjmp(fCodec->fDecoderMgr->getJmpBuf())) {
            SkCodecPrintf("setjmp: Error from libjpeg\n");
            return SkCodec::kInvalidInput;
        }

        // Check if we can decode to the requested destination and set the output color space
        if (!fCodec->setOutputColorSpace(dstInfo)) {
            return SkCodec::kInvalidConversion;
        }

        // Perform the necessary scaling
        if (!fCodec->nativelyScaleToDimensions(dstInfo.width(), dstInfo.height())) {
            // full native scaling to dstInfo dimensions not supported

            if (!SkScaledCodec::DimensionsSupportedForSampling(this->getInfo(), dstInfo)) {
                return SkCodec::kInvalidScale;
            }
            // create swizzler for sampling
            SkCodec::Result result = this->initializeSwizzler(dstInfo, options);
            if (SkCodec::kSuccess != result) {
                SkCodecPrintf("failed to initialize the swizzler.\n");
                return result;
            }
            fStorage.reset(get_row_bytes(fCodec->fDecoderMgr->dinfo()));
            fSrcRow = static_cast<uint8_t*>(fStorage.get());
        } else {
            fSrcRow = NULL;
            fSwizzler.reset(NULL);
        }

        // Now, given valid output dimensions, we can start the decompress
        if (!chromium_jpeg_start_decompress(fCodec->fDecoderMgr->dinfo())) {
            SkCodecPrintf("start decompress failed\n");
            return SkCodec::kInvalidInput;
        }

        fOpts = options;

        return SkCodec::kSuccess;
    }

    virtual ~SkJpegScanlineDecoder() {
        if (setjmp(fCodec->fDecoderMgr->getJmpBuf())) {
            SkCodecPrintf("setjmp: Error in libjpeg finish_decompress\n");
            return;
        }

        // We may not have decoded the entire image.  Prevent libjpeg-turbo from failing on a
        // partial decode.
        fCodec->fDecoderMgr->dinfo()->output_scanline = fCodec->getInfo().height();
        chromium_jpeg_finish_decompress(fCodec->fDecoderMgr->dinfo());
    }

    SkCodec::Result onGetScanlines(void* dst, int count, size_t rowBytes) override {
        // Set the jump location for libjpeg errors
        if (setjmp(fCodec->fDecoderMgr->getJmpBuf())) {
            return fCodec->fDecoderMgr->returnFailure("setjmp", SkCodec::kInvalidInput);
        }
        // Read rows one at a time
        JSAMPLE* dstRow;
        if (fSwizzler) {
            // write data to storage row, then sample using swizzler
            dstRow = fSrcRow;
        } else {
            // write data directly to dst
            dstRow = (JSAMPLE*) dst;
        }

        for (int y = 0; y < count; y++) {
            // Read row of the image
            uint32_t rowsDecoded =
                    chromium_jpeg_read_scanlines(fCodec->fDecoderMgr->dinfo(), &dstRow, 1);
            if (rowsDecoded != 1) {
                if (SkCodec::kNo_ZeroInitialized == fOpts.fZeroInitialized ||
                        kN32_SkColorType == this->dstInfo().colorType()) {
                    SkSwizzler::Fill(dstRow, this->dstInfo(), rowBytes,
                            count - y, SK_ColorBLACK, NULL);
                }
                fCodec->fDecoderMgr->dinfo()->output_scanline = this->dstInfo().height();
                return SkCodec::kIncompleteInput;
            }

            // Convert to RGBA if necessary
            if (JCS_CMYK == fCodec->fDecoderMgr->dinfo()->out_color_space) {
                convert_CMYK_to_RGBA(dstRow, fCodec->fDecoderMgr->dinfo()->output_width);
            }

            if(fSwizzler) {
                // use swizzler to sample row
                fSwizzler->swizzle(dst, dstRow);
                dst = SkTAddOffset<JSAMPLE>(dst, rowBytes);
            } else {
                dstRow = SkTAddOffset<JSAMPLE>(dstRow, rowBytes);
            }
        }
        return SkCodec::kSuccess;
    }

#ifndef TURBO_HAS_SKIP
// TODO (msarett): Make this a member function and avoid reallocating the
//                 memory buffer on each call to skip.
#define chromium_jpeg_skip_scanlines(dinfo, count)                           \
    SkAutoMalloc storage(get_row_bytes(dinfo));                              \
    uint8_t* storagePtr = static_cast<uint8_t*>(storage.get());              \
    for (int y = 0; y < count; y++) {                                        \
        chromium_jpeg_read_scanlines(dinfo, &storagePtr, 1);                 \
    }
#endif

    SkCodec::Result onSkipScanlines(int count) override {
        // Set the jump location for libjpeg errors
        if (setjmp(fCodec->fDecoderMgr->getJmpBuf())) {
            return fCodec->fDecoderMgr->returnFailure("setjmp", SkCodec::kInvalidInput);
        }

        chromium_jpeg_skip_scanlines(fCodec->fDecoderMgr->dinfo(), count);

        return SkCodec::kSuccess;
    }

    SkEncodedFormat onGetEncodedFormat() const override {
        return kJPEG_SkEncodedFormat;
    }

private:
    SkAutoTDelete<SkJpegCodec> fCodec;
    SkAutoMalloc               fStorage;    // Only used if sampling is needed
    uint8_t*                   fSrcRow;     // Only used if sampling is needed
    SkCodec::Options           fOpts;
    SkAutoTDelete<SkSwizzler>  fSwizzler;

    typedef SkScanlineDecoder INHERITED;
};

SkScanlineDecoder* SkJpegCodec::NewSDFromStream(SkStream* stream) {
    SkAutoTDelete<SkJpegCodec> codec(static_cast<SkJpegCodec*>(SkJpegCodec::NewFromStream(stream)));
    if (!codec) {
        return NULL;
    }

    const SkImageInfo& srcInfo = codec->getInfo();

    // Return the new scanline decoder
    return SkNEW_ARGS(SkJpegScanlineDecoder, (srcInfo, codec.detach()));
}