text:
Posted inCrime & Safety
Blotter: Identity theft, burglary, vandalism, bench warrants
by LebTown Staff December 12, 2022 December 11, 2022 5 min read
Abstract image of police lights. (hnt6581/Flickr CC)
Bethel Township
Vehicle Accident – At 3:20 p.m. Dec. 4, a crash occurred on SR 343 (South Pine Grove Street), north of Golf Road. A 2017 Lexus Lexus-NX200T driven by a male was traveling south on SR 343 and drifted over into the north lane, sideswiping a 2007 Chevrolet Silverado driven by a 52-year-old Friedensburg man. The male driver of the Lexus fled the scene on foot in an unknown direction. The Friedensburg man was wearing his seatbelt at the time of the crash. No injuries were reported. Both vehicles were towed from the scene. Charges against the male driver of the Lexus for accidents involving damage to attended vehicle or property are pending investigation.
Theft – On Dec. 2, police responded to Redner's Quick Shop in Fredericksburg and determined that an employee, Alize Baquerizo, 23, of Fredericksburg, had stolen money from the store. Police processed Baquerizo at PSP Jonestown, where she was later released. Charges are pending.
Vehicle Accident – Damage from a crash was observed at approximately 8 a.m. Dec. 2 at the intersection of Union and Freeport roads, where an unknown vehicle left the road and struck the stop sign on Union Road, north of the intersection. The stop sign was damaged. Charges of driving on roadways laned for traffic are pending investigation.
Cleona Borough
Burglary Residential No Force – At 4:59 a.m. Nov. 30, an unknown actor(s) attempted to open the victim's window on North Washington Street.
East Hanover Township
Criminal Mischief under $1,000 – At approximately 10:20 a.m. Nov. 27, a 69-year-old Annville man contacted police and said he returned home from vacation and discovered a bullet had been shot into the back of his house on the 10400 block of Jonestown Road. Rifle season started on Nov. 26, and the victim's house is located near a field and wooded area. It is believed that a stray bullet from a hunter struck the house.
Jackson Township
False Alarms – At 1:23 a.m. Dec. 5, police cited Topstar Express in Myerstown for false alarms as they had a fourth false alarm within 12 consecutive months.
Millcreek Township
Theft of Vehicle Parts – On Dec. 3, police were informed that between Nov. 24 and Dec. 1, an unknown actor cut off a catalytic converter from a 2001 Ford F450 along the 100 block of Sonnens Road. The victim was a 67-year-old Richland man. Anyone with any information regarding this incident is asked to contact PSP Jonestown at 717-865-3620.
North Cornwall Township
Vehicle Accident – At 5:55 p.m. Dec. 5, police responded to 16th Street for a crash. A vehicle driven by 36-year-old Lebanon man was traveling south and veered off the road, striking a utility pole. The man's vehicle was towed from the scene. No injuries were reported.
Solicitation without a Permit – Police received multiple calls from residents over several nights about persons on private property, after solicitation hours, attempting to solicit for a subsidiary of Verizon called Limitless Management. At 7:30 p.m. Dec. 7, police cited a 20-year-old Harrisburg man for not having a proper permit for solicitation. Permits for solicitation must be requested from the township and only be conducted between 10 a.m. and 5 p.m. Monday through Saturday and not on holidays.
Drug Possession – At 12:29 a.m. Dec. 9, police conducted a routine traffic stop on the 500 block of East Penn Avenue. Police cited the driver, a 21-year-old Lebanon man, with possession of a small amount of marijuana and possession of drug paraphernalia.
North Londonderry Township
Vandalism – At 4:40 p.m. Dec. 2, Derek Ulrich, 39, of Palmyra, who is the Palmyra Baseball Organization president, reported vandalism and damage that occurred at the concession stand and field within the past month. This included a broken door and chairs thrown from the announcing stand. Ulrich also reported that someone entered the stand sometime between 4:45 p.m. Dec. 1 and 4:30 p.m. Dec. 2 and threw glass food jars with contents against the inside and outside of the building. No damage estimate was available.
Possessing a Weapon on School Property – At 9 a.m. Nov. 30, police cited a 14-year-old Palmyra girl with possessing a weapon on school property after she was found to have two knives inside Palmyra Area High School.
Drug Possession – At 9:30 a.m. May 29, police cited a 21-year-old Palmyra woman with possession of a small amount of marijuana and possession of drug paraphernalia following a call on the 600 block of East Ridge Road
Palmyra Borough
Bench Warrants, Driving on a Suspended License, Driving without Valid Registration – At 10:29 a.m. Dec. 3, police initiated a traffic stop on a vehicle on the 700 block of West Main Street for operating without a license plate. Police identified a passenger in the vehicle as Joseph Gooden, who had three bench warrants out of Lebanon County for failure to appear, with the original charges being robbery, simple assault, and possession of drug paraphernalia. Gooden also had an arrest warrant from the Pennsylvania State Police for possession of a controlled substance and two more bench warrants out of Lebanon County for domestic relations. Police placed Gooden under arrest and transported him to LCCB. Police cited the driver with driving on a suspended license, driving without valid registration, and driving without insurance.
Arrest Warrants – At approximately 12:52 a.m. June 20, police attempted to initiate a traffic stop on a black Ford Explorer when the vehicle failed to yield and increased its speed. After a brief pursuit, police located the vehicle unoccupied at the Palmyra Sportsmen's Association. Police identified the driver as Neil Swatsky, 40, and issued an arrest warrant for fleeing and eluding, possession of drug paraphernalia, possession of a small amount of marijuana, reckless driving, careless driving, and registration and certificate of title required. Police arrested Swatsky in Dauphin County on Oct. 22, and the Palmyra Borough Police Department's warrant was served.
Bench Warrant – At 6 p.m. Dec. 5, police pulled over Linda Slaseman, 51, in the 900 block of East Main Street for driving with a suspended license. Police took Slaseman into custody for an active bench warrant out of Lancaster County.
Access Device Fraud, Computer Trespass, Criminal Use of a Communication Facility – On Dec. 5, police filed charges against Brian Anthony through MDJ Carl Garver's office, including access device fraud, computer trespass, criminal use of a communication facility, identity theft, criminal attempt theft by unlawful taking, financial exploitation of an older adult or care-dependent person, theft by unlawful taking, and access device fraud. Charges are the result of an investigation into a report received on March 5 that accused Anthony of stealing money from a disabled individual's bank accounts and setting up mobile payment accounts in the victim's name.
Swatara Township
Simple Harassment – At 12:27 a.m. Nov. 16, police responded to Quarry Road for a report of a domestic incident. The arrestee was a 41-year-old Lebanon woman. The victim was a 47-year-old Lebanon man. Police are investigating.
Identity Theft – On Dec. 2, police took a report from a 56-year-old Swatara Township man that an unemployment claim was fraudulently filed under his name.
Union Township
Found Property – At 8:55 a.m. Dec. 2, the PSP Jonestown station came into possession of an El Salvador identification card that was found on SR 72 near Frogs Hollow Tavern. Anyone with any information regarding this property is asked to contact PSP Jonestown at 717-865-3620.
DUI – At 1:48 a.m. Dec. 3, a 50-year-old Lebanon man was cited for operating a 2017 Nissan Titan on SR 72 and Jonestown Road while under the influence of alcohol.
Drug Possession – At 3:27 p.m. Nov. 26, police took Autumn Miller, 43, of Palmyra, into custody and cited her with possession of drug paraphernalia after they found a methamphetamine pipe in her 2018 Chevrolet Equinox during a traffic stop on Suedberg Road and Statepark Lane.
About the LebTown Blotter
We do not publish names for traffic accidents, summary offenses, or cases where we cannot verify that charges have been filed. Read more in our "Right to be Forgotten" policy.
Tagged: FeaturedSecondary, Police Blotter
Previous Recent Lebanon County obituaries for week of December 12
Next Met-Ed owner FirstEnergy shares readiness steps in wake of grid attacks
37° and Mostly Cloud
Lebanon Rescue Mission announces free Sunday meals through end of April
Blotter: Theft of motor vehicle, underage drinking, found dog


This is a placeholder page for Sachi Greene, which means this person is not currently on this site. We do suggest using the tools below to find Sachi Greene.
You are visiting the placeholder page for Sachi Greene. This page is here because someone used our placeholder utility to look for Sachi Greene. We created this page automatically in hopes Sachi Greene would find it. If you are not Sachi Greene, but are an alumni of Martin County High School, register on this site for free now.


This modpack includes many mods to make your pixelmon experience greater than it is already.
i have always wanted a modpack that included Tech and Pokemon which are 2 of my favorite things in minecraft. So i set out to do just that i spent hours making a modpack and hours studying which server host would fit my needs the most, and after a long search i finally achieved my goal and created THIS. I hope you enjoy.
How did you get a pack approved with both Pixelmon and Optifine in it as direct downloads?


text:
Never Stop Being Interesting
A Groovy Kind of Interview with Eric Stewart
by Eoghan Lyng
As a member of The Mindbenders and a founder of 10cc, singer-guitarist Eric Stewart hit the 1960s pop charts with songs like "Game of Love" and "A Groovy Kind of Love." In between, he also was part of Hot Legs with art-rock sessioneers Lol Creme and Kevin Godley, a group that also scored a hit with "Neanderthal Man." In short, Stewart has co-fronted a variety of line-ups, for which he's acted as songwriter, guitarist, keyboardist, and studio engineer. Clearly well-versed in The Beatles, Stewart also was personally invited by Paul McCartney to work on the latter's Tug of War (1982) then subsequently Pipes of Peace (1983), Give My Regards to Broadstreet (1984) and Press to Play (1986). From Beatles fan to Beatles collaborator… not a bad career trajectory. Needless to say, our interview covers a lot of ground.
Related: "The Things They Did for Love: The Top 10 Songs of 10cc"
Q: Firstly, how did The Beatles influence 10cc in terms of studio craft?
A: They influenced me long before 10cc in the way that none of their songs sounded the same. They always changed their style on every song. You hear artists on the radio playing the same thing again and again and again. The Beatles never repeated themselves on the albums, which also influenced me when I went into studio work, the band work became 10cc. Strawberry Studios was named after "Strawberry Fields Forever," which is one of my favorite songs. My favorite of all time is probably "Imagine." I agree with John Lennon: Religion is the cause of conflict. You see it on the television and the internet all the time.
Q: Paul McCartney booked Strawberry Studios while 10cc recorded Sheet Music. Did that influence the flow of the album?
A: I think almost certainly so. I think Sheet Music might be my favorite 10cc album, although The Original Soundtrack broke more boundaries with tracks like "Une Nuit A Paris" and "I'm Not in Love." As you probably know, "I'm Not in Love" started as a bossa nova piece and Kevin Godley told us it sounded crap. Then I heard people in the studio singing it and I thought it must be good. Kevin, again, suggested the vocals, and I thought acapella? So, we spent six weeks producing it, coming in at six minutes, which made it an unlikely single. It started at number 29, then hit the U.K. number one! I wrote it about trying to say "I love you" and the different ways of saying it. My wife, Gloria, and I are still together all these years later. It was amazing working with three voices that could sing anything. Kevin has a great voice, "Don't Hang Up" is beautiful; he and Lol Creme could sing so high! Anyway, Paul McCartney sent me a postcard telling me he really liked Sheet Music, so I think that Beatle thing of pushing and experimenting was there.
Q: Tug of War might be McCartney's most accomplished album after his Wings work. With songs as energetic as "Take It Away" and "The Pound Is Sinking" and as potent as "Wanderlust" and "Here Today." How did they sound when you first heard them?
A: I didn't hear them in demo form — I'm influential on some of them on record — but I heard them in the studio. Just terrific to work with them. Paul's very involving as a person. I sang with Paul and Linda. Lovely girl, Linda. We became very social. We lived very near each other. Our kids went to the same schools. Paul was partial to a bottle of wine, as I was after living in France for so long. We were local, we'd eat a meal together. We'd meet up and it was Linda who later suggested that we write together. I like the production on the album. It didn't have too many people on them like Press to Play did. And George Martin was a terrific producer. He was a great guy who worked with The Beatles, bringing in real strings and ideas to their songs.
Related: "Waiting In the Wings with Paul and Linda McCartney"
Q: George Martin produced Tug of War and Pipes of Peace. How did he work with the musicians and how was it working with The Beatles' sounding board?
A: Wonderful to work with. I adored George — so friendly, never nasty. It was George Martin who kept telling me to write a book [the memoir, The Things I Do for Love] because he said that I live such an interesting life outside of music… He had such a way about him, arms out when he'd meet you. He always had a lovely way of saying "Eric, that isn't working" or "Paul, maybe you could sing that better." He didn't have to kowtow to anybody, but so friendly.
Q: You played with the Beatles rhythm section in "So Bad." How was that for a Beatle fan?
A: Dream come true… I saw The Beatles years beforehand when they played "Love Me Do" onstage. I tell a story in my book where I say my band did an audition for the BBC when The Beatles did. We passed, they didn't! I thought it was hilarious because I thought "Love Me Do" was the future of English music. My mates said Cliff and The Shadows with their footsteps was the way!
Q: From this, Give My Regards to Broadstreet came together. Was John Paul Jones involved with that project?
A: John did work on it! I knew him from years ago when he did some work in Strawberry Studios North. Terrific guy. I really loved working with him, even when he played with one of the greatest heavy metal bands, Led Zeppelin. He played with Jimmy Page, who I had met years before, even before Zeppelin. He was doing a lot of studio work and one day I asked him if I could have a noodle on his black Les Paul. He said I could even play it on the record! And that was "Game of Love," the first Wayne Fontana and The Mindbenders hit. Playing Jimmy's guitar inspired me further to be experimental. I wish I had written that one! Wayne was our frontman, then he walked off one night, so we kept playing onstage. Wayne was fed up. He wanted a solo career. Happened a lot. Gerry Marsden splitting from the Pacemakers and so on. So, I sang "Groovy Kind of Love." It was written by two 16-year-old girls — Carole Bayer and Toni Wine. I heard them singing the demo, I thought it was great. Number one in America for us!
Q: You are one of a handful of people to write with McCartney after Lennon. He had written with Linda and Denny Laine and would later write with Elvis Costello. How was it different than writing with Graham Gouldman and Lol Creme?
A: Lol's a bit wilder with his work. He'd come in and say something, which might make you stop. Then you would say, "Life! It is a minestrone!" The ups and downs of life, summed up in a title! He had some nice riffs too. I loved playing guitar on Godley and Creme songs like "Rubber Bullets"… That was a song that was written about American prisons, where you would shoot a rubber bullet to hurt — but not kill — an inmate. It came out when rubber bullets were being used in Northern Ireland. Lol could come out with lines that started the musical bent… Lol was very creative. Paul could be like that. You've probably heard this story: I went to his place telling him how beautiful it was walking through three feet of snow with the sun shining. He started singing "it's beautiful outside" which became "Footprints." An amazing experience for me! The second track on my album [Eric Stewart / 10cc: Anthology] is "Code of Silence" which came about when Paul was in my music room. He had come around for lunch. We went to the music room where I could go to record. He started playing a beautiful string section, then put down an electric piano part. I said it was brilliant, and he left it with me. I did the vocal and sent it to him. He liked it and said, "hope I get credit" [laughs]. He did put the backing down, so, of course, he did!
Q: You've spoken of your disappointment with the production of Press to Play, but "Footprints" and "Pretty Little Head" still sound as vibrant and fresh as any of McCartney's work. How do you feel about that album?
A: It's unfortunate, really. We started off writing songs like "Stranglehold" and "Footprints" on acoustic guitars before the studio. When we sat down to [record] them, Hugh Padgham was the brilliant engineer at the time… [Then] Hugh started getting nasty with me. He'd talk to Paul on the talkback and started referring to me as "he," not Eric. He'd say, "Can you do it again, he doesn't like it". I went with Paul upstairs to have a chat. I asked who was producing; he said the three of us…. The next morning, Paul's manager calls to say that Paul didn't think the production was working out and wouldn't continue working with me.
That's a shock. When we started, we had John Kelly engineering before Hugh. The first thing we recorded was "Angry." Paul had these great lyrics "What the hell gives the right to tell me what to do with my life?" I played a really good, heavy guitar riff to that. That night, Gloria picks up the phone and Paul tells her I'm a "fucking genius"… I thought it would carry on, but Padgham screwed it. He said he'd walk away if he didn't produce it himself, so Paul let me go. That was very sad. Much later on, he did apologize, saying he got it wrong too. By the time it was finished, we'd had five producers on it. Five. It ended up being Paul's lowest selling album.
Q: You later recorded "Yvonne's The One" with 10cc. How did your version differ?
A: That was a song we took from a postcard I got from Nick Mason of Pink Floyd. It had the line "when I first saw Yvonne, volcanoes exploded" on it. I showed it to Paul, and we wrote to that. Paul's a perceptive guy. He wanted it in a laidback, ballad way, but I suggested to do it in a more reggae way. He did it in the smoother, ballad style, but I always wanted to do the reggae version, so I did it on my album. I wish it were more reggae, more Bob Marley. That Jamaican rhythm would suit the words.
-Eoghan Lyng
Photo Credit: Eric Stewart of 10cc performs on stage at Congresgebouw, The Hague, Netherlands, 1st May 1980. (Photo by Rob Verhorst/Redferns/Getty Images)
Tags10cc • CultureSonar • CultureSonarInterviews • Eoghan Lyng • Eric Stewart • Kevin Godley • Lol Creme
AboutEoghan Lyng
Eoghan Lyng is an Irish man, but we won't hold that against him. Writing credits include WeAreCult, The Playlist and The Irish Post. He now hopes to bring his love for esoteric pop to CultureSonar. He can be contacted @eoghanlyng on his Twitter page.
eoghanlyng
10 comments on "A Groovy Kind of Interview with Eric Stewart"
Paul Power
Nice little bit of insight into the musical workings of the ever brilliant Eric Stewart.
Eoghan Lyng
It was lovely to interview him too. Thank you for the kind words.
Michael Mckenna
Great interview, heard he had probs on Press To Play. Nice to hear the full story.
Yes, quite frank about it. He has a point about Angry, had McCartney recorded more in that Helter Skelter vein, it might have been a mini masterpiece!
Kim Roberts
He is still bitter with Graham and never responds to questions about him.
However they feel about each other, they're both gracious to their fans and what a catalogue they created together.
Why is he bitter with Graham G ?
They've had their disagreements throughout the years. Stewart wrote about his perspective in the book.
Bill Scherer
I just stumbled on to the Interview with Mr. Eric Stewart. Great job on both sides. You asked great questions and he was very friendly and honest with his answers. I happened upon your interview in a round about way. I've been listening to the Take it Away podcast where the albums of Sir Paul are reviewed one at a time. Eric's name got mentioned for his work so I started looking around for info about his time with Paul. I found you via Wikipedia. Again, thanks for a well done piece.
Well, this is just lovely. Thank you very much.
Subscribe and Get This eBook — FREE
Do (72)
Hear (800)
Read (108)
See (487)
COPYRIGHT 2018 CULTURESONAR, INC. ALL RIGHTS RESERVED.
Love the Beatles? Get this eBook FREE when you subscribe.
It turns out there's a lot to say. Just say "yes" to get yours.

redpajama_set_name: RedPajamaCommonCrawl


Viewers will learn the basics of slicers and timelines for both PivotTables and standard Excel tables in Excel 2013.
Viewers will learn the basics of printing in Excel 2013 and how to adjust some common settings.
Viewers will learn how to create a PivotTable and make basic changes to it in Excel 2013.
Viewers will learn how to find and create templates in Excel 2013.
Viewers will learn various types of data validation for different data types in Excel 2013.
Viewers will learn how to apply various conditional formatting in Excel 2013.
Viewers will learn the different options available in the Backstage view in Excel 2013.
Viewers will learn how to maximize accessibility options in an Excel workbook for users with accessibility issues.


text:
By Clark Brooks, Editor & Publisher
It is the word I started using about a week or so ago in informal conversations to refer to sheltering-in-place. In our homes and apartments we are much like hermit crabs, turtles and clams safely tucked within our sanctuaries from a virus to avoid infecting or becoming infected with the coronavirus.
There are early indications that shelling may become the new normal - at least for a while longer than we all care to think about.
First, let me say I'm not a fan of shelling. I fully understand the urgent need to shelter in place to prevent family, friends and customers, as well any other American from contracting the Covid-19 virus.
Nature's predatory culling the herd of the human species is extremely disconcerting. Personally, I have no desire to inflict the severe, life-altering symptoms, or ultimately death, on and anyone. And hopefully, neither should you.
A few days ago Governor J.B. Pritzker hinted during his daily coronavirus briefing that Illinoisans may be shelling past the April 30 date established in Executive Order 16 back on April 1.
"I think everybody needs to think seriously about canceling large summer events," he said. "From my perspective today, I do not see how we are going to have large gatherings of people again until we have a vaccine, which is months and months away. I would not risk having large groups of people getting together anywhere. I think that's hard for everybody to hear, but that's just a fact."
Days before Gov. Pritzker's press conference the committee for the annual Freedom Celebration in Champaign-Urbana for 2020 was officially canceled. The decision came on the heels of the University of Illinois at Urbana-Champaign decision to cancel all university summer camps through July 10, 2020 and all summer events held on campus until further notice.
Two days ago, Illinois State University President Larry Dietz announced that all summer camps, conferences, events, and activities held on campus scheduled through July 31, 2020 have been postponed or cancelled. Students who want to take summer classes at ISU will now take them online.
America improvises, adapts, and then overcomes. It has been what this country has done better than any other since 1776.
While Eastern Illinois University, home to the Illinois High School Association's boys and girls state track meets, has not released any information regarding campus events as of yet, it is likely administrators will follow ISU and the University of Illinois' lead and adopt the same policy through the beginning of their next fiscal year. It goes without saying should the EIU administration take the same approach, it will deliver a serious blow to the IHSA and dreams of thousands of high school track athletes throughout Illinois who continued training and held on to the hope of competing this season.
The response to COVID-19 by universities around the state, given many are the sites for IHSA sectional and supersectional contests, is just one more nail - I pray that I'm wrong - for next week's coffin to bury the spring 2020 sports season in American history.
Shelling does appear to be successful measure in the mitigation of CV-19. The spread of the Coronavirus in Champaign County had been minimal compared to other cities around the country. There have been just 21 new confirmed cases reported by the Champaign-Urbana Public Health District in the last seven days. Currently there are just 40 active cases in the county with another 40 that were diagnosed with the infection, now listed as recovered. Eight people are hospitalized according the CUPHD site which is updated daily.
Already, there are 15 counties in Illinois with more than 70 confirmed cases. The Illinois Department of Public Health reports that Cook has 5,242 cases, Kane lists 339 and nearby McLean County has 75 cases.
It is neither pleasant or convenient, but shelling seems to be working for Illinois. The question is how much longer will we need to stay sheltered in place. When will things go back to normal?
Last Thursday, Vice President Mike Pence's tone was not exactly optimistic.
"No one wants to reopen America more than President Donald Trump," Pence said, hinting that reopening the country at the end of April are perhaps unrealistic. He added that the White House would consult collected data to "inform the president's decision and timing."
While I am praying for the exact opposite, I'm confident we will still be shelling after May 1 when Illinois current executive mandate ends.
Around April 24, give or take a few days, I expect the governor to announce we will need to continue shelling for another 21 days despite a gradual decrease in confirmed cases. Logically, this move would be justifiable in light of border states like Missouri and Wisconsin started shelling about two weeks after Illinois. Then there Iowa, one of a handful of states that has not instituted a stay-at-home order, obviously banking on the herd immunity strategy to combat the spread of the virus. Contaminated individuals traveling from or transporting goods through those states could cause resurgent hot spots or flare ups in Illinois.
I think it would be wise, especially if the antibody tests or a vaccine is not made available to the general public soon, to mentally preparing oneself for the inevitable roll of several back-to-back shelter in place extensions until at least July.
If the shelling works as planned, in three months we will be able to roam the planet freely again.
We will be free to laugh in the company of friends and family at a wedding, bar or outdoor venue. Free to listen to live music with hundreds of fans. Free to celebrate birthdays, anniversaries or the passing of a loved one. Free to touch, kiss and hug once again.
But, for how long? Behavior biologists, virologists and microbiologists say expect COVID-19 to make encore appearance months (may be weeks) after we reach the all clear level. Reluctantly, after the taste of fresh air and the warmth of the sun across our faces, we will be required to return to our shells once again when infections from the coronavirus rise again.
America improvises, adapts, and then overcomes. It has been what this country has done better than any other since 1776 and counting. With a little experience under our belts, returning to our shells, won't be easier, but it will probably feel almost normal.
Labels: Coronavirus, COVID-19, Government, IHSA, Public Health, Shelling, Shelter-In-Place, Summer


If customers are quick to jump off your landing page before you have even had the opportunity to convert them, your website has a problem. A high bounce rate can jeopardise your profit and may indicate that you are falling behind the competition.
These tips will bring your bounce rate down and your conversions up.
Landing pages with blocks of text will have your website visitors back on a search engine in seconds. You should make sure your text is broken up with suitable pictures, sub-headings, easy to understand language and icons. That way, the customer can easily find the information they seek and are engaged rather than deterred by your web content.
Browsing on the go is more common than ever so if your site is not mobile friendly you are alienating a large segment of your market. Smart formatting tools will make sure your settings are up to speed.
Chances are if your website takes longer than two seconds to load your visitor will lose interest and leave your site. Optimising your site, using caching and sizing your images can all make your website faster.


This is a general order issued by Headquarters Department of the Pacific at the direction of Major General McDowell. The order bans any public celebration of the assassination of the President. Any newspaper that violates the order is subject to seizure.


The design of Airy Pants ensures the most comfortable and flattering look, it is the perfect pant for any occasion and essential for a timeless wardrobe. It is made in a natural luxurious material of tencel and linen blend, soft and fluid. Airy Pants has a loose and cropped leg with an elastic waistband with gathering to ensure optimal comfort.
Match with Airy Shirt or Homie Shirt as a perfect set or Basic Tee for a classic look.


Bart grew up on Long Island, then headed south to attend the University of Central Florida, where he graduated with a BA in journalism and a minor in political science. Post-college, Bart worked as communications director for a national non-profit, then as an independent marketing consultant. In Atlanta, he joined CIBC Private Wealth Management to help define and execute the firm's digital marketing strategy.
As marketing manager at Westmount, Bart helps communicate the firm's story to current and prospective clients. His responsibilities include expanding Westmount's online and offline presence, supporting business development efforts and producing special events for clients and strategic partners.


Over the last decade we have traveled to over 87 countries and explored the depths of the Oceans in order to capture this beautiful planet on film. We continue to create new and engaging content that we hope will inspire others to book their next ticket, get out there and see the world for themselves.
Departures well-traveled host Scott Wilson explores Laos on two wheels. Read about his adventure here!
DESCENDING - Now available on iTunes!
Finally Descending is available on all of your iOS devices!
Get it now on iTunes!


text:
/* ------------------------------------------------------------------ */
/* Decimal 64-bit format module                                       */
/* ------------------------------------------------------------------ */
/* Copyright (c) IBM Corporation, 2000, 2006.  All rights reserved.   */
/*                                                                    */
/* This software is made available under the terms of the             */
/* ICU License -- ICU 1.8.1 and later.                                */
/*                                                                    */
/* The description and User's Guide ("The decNumber C Library") for   */
/* this software is called decNumber.pdf.  This document is           */
/* available, together with arithmetic and format specifications,     */
/* testcases, and Web links, at: http://www2.hursley.ibm.com/decimal  */
/*                                                                    */
/* Please send comments, suggestions, and corrections to the author:  */
/*   mfc@uk.ibm.com                                                   */
/*   Mike Cowlishaw, IBM Fellow                                       */
/*   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         */
/* ------------------------------------------------------------------ */
/* This module comprises the routines for decimal64 format numbers.   */
/* Conversions are supplied to and from decNumber and String.         */
/*                                                                    */
/* No arithmetic routines are included; decNumber provides these.     */
/*                                                                    */
/* Error handling is the same as decNumber (qv.).                     */
/* ------------------------------------------------------------------ */
#include <string.h>           // [for memset/memcpy]
#include <stdio.h>            // [for printf]

#define  DECNUMDIGITS 16      // make decNumbers with space for 16
#include "tr/executor/base/decNumber/decNumber.h"        // base number library
#include "tr/executor/base/decNumber/decNumberLocal.h"   // decNumber local types, etc.
#include "tr/executor/base/decNumber/decimal64.h"        // our primary include

/* Utility routines and tables [in decimal64.c] */
extern const uInt COMBEXP[32], COMBMSD[32];
extern void decDigitsFromDPD(decNumber *, const uInt *, Int);
extern void decDigitsToDPD(const decNumber *, uInt *, Int);

#if DECTRACE || DECCHECK
void decimal64Show(const decimal64 *);            // for debug
extern void decNumberShow(const decNumber *);     // ..
#endif

/* compile-time endian tester [assumes sizeof(int)>1] */
static  const  Int mfcone=1;                 // constant 1
static  const  Flag *mfctop=(Flag *)&mfcone; // -> top byte
#define LITEND mfctop[0]           // named flag; 1=little-endian

/* Useful macro */
// Clear a structure (e.g., a decNumber)
#define DEC_clear(d) memset(d, 0, sizeof(*d))

/* ------------------------------------------------------------------ */
/* decimal64FromNumber -- convert decNumber to decimal64              */
/*                                                                    */
/*   ds is the target decimal64                                       */
/*   dn is the source number (assumed valid)                          */
/*   set is the context, used only for reporting errors               */
/*                                                                    */
/* The set argument is used only for status reporting and for the     */
/* rounding mode (used if the coefficient is more than DECIMAL64_Pmax */
/* digits or an overflow is detected).  If the exponent is out of the */
/* valid range then Overflow or Underflow will be raised.             */
/* After Underflow a subnormal result is possible.                    */
/*                                                                    */
/* DEC_Clamped is set if the number has to be 'folded down' to fit,   */
/* by reducing its exponent and multiplying the coefficient by a      */
/* power of ten, or if the exponent on a zero had to be clamped.      */
/* ------------------------------------------------------------------ */
decimal64 * decimal64FromNumber(decimal64 *d64, const decNumber *dn,
                                decContext *set) {
  uInt status=0;                   // status accumulator
  decNumber  dw;                   // work
  decContext dc;                   // ..
  uInt *pu;                        // ..
  uInt comb, exp;                  // ..
  uInt targar[2]={0,0};            // target 64-bit
  #define targup targar[1]         // name the word with the sign

  // If the number has too many digits, or the exponent could be
  // out of range then reduce the number under the appropriate
  // constraints.  This could push the number to Infinity or zero,
  // so this check and rounding must be done before generating the
  // decimal64]
  if (!(dn->bits&DECSPECIAL)) {              // not a special value
    Int ae=dn->exponent+dn->digits-1;        // adjusted exponent
    if (dn->digits>DECIMAL64_Pmax            // too many digits
     || ae>DECIMAL64_Emax                    // likely overflow
     || ae<DECIMAL64_Emin) {                 // likely underflow
      decContextDefault(&dc, DEC_INIT_DECIMAL64); // [no traps]
      dc.round=set->round;                   // use supplied rounding
      decNumberPlus(&dw, dn, &dc);           // (round and check)
      // [this changes -0 to 0, so enforce the sign...]
      dw.bits|=dn->bits&DECNEG;
      status=dc.status;                      // save status
      dn=&dw;                                // use the work number
      }
    } // maybe out of range

  if (dn->bits&DECSPECIAL) {                      // a special value
    if (dn->bits&DECINF) targup=DECIMAL_Inf<<24;
     else {                                       // sNaN or qNaN
      if ((*dn->lsu!=0 || dn->digits>1)           // non-zero coefficient
       && (dn->digits<DECIMAL64_Pmax)) {          // coefficient fits
        decDigitsToDPD(dn, targar, 0);
        }
      if (dn->bits&DECNAN) targup|=DECIMAL_NaN<<24;
       else targup|=DECIMAL_sNaN<<24;
      } // a NaN
    } // special

   else { // is finite
    if (decNumberIsZero(dn)) {               // is a zero
      // set and clamp exponent
      if (dn->exponent<-DECIMAL64_Bias) {
        exp=0;                               // low clamp
        status|=DEC_Clamped;
        }
       else {
        exp=dn->exponent+DECIMAL64_Bias;     // bias exponent
        if (exp>DECIMAL64_Ehigh) {           // top clamp
          exp=DECIMAL64_Ehigh;
          status|=DEC_Clamped;
          }
        }
      comb=(exp>>5) & 0x18;             // msd=0, exp top 2 bits ..
      }
     else {                             // non-zero finite number
      uInt msd;                         // work
      Int pad=0;                        // coefficient pad digits

      // the dn is known to fit, but it may need to be padded
      exp=(uInt)(dn->exponent+DECIMAL64_Bias);    // bias exponent
      if (exp>DECIMAL64_Ehigh) {                  // fold-down case
        pad=exp-DECIMAL64_Ehigh;
        exp=DECIMAL64_Ehigh;                      // [to maximum]
        status|=DEC_Clamped;
        }

      decDigitsToDPD(dn, targar, pad);

      // save and clear the top digit
      msd=targup>>18;
      targup&=0x0003ffff;

      // create the combination field
      if (msd>=8) comb=0x18 | ((exp>>7) & 0x06) | (msd & 0x01);
             else comb=((exp>>5) & 0x18) | msd;
      }
    targup|=comb<<26;              // add combination field ..
    targup|=(exp&0xff)<<18;        // .. and exponent continuation
    } // finite

  if (dn->bits&DECNEG) targup|=0x80000000; // add sign bit

  // now write to storage; this may be endian, or not
  #if DECENDIAN
  // DECENDIAN -- direct store, in the right order
  pu=(uInt *)d64->bytes;           // overlay
  if (LITEND) {
    *pu=targar[0];                 // directly store the low int
    pu++;
    *pu=targar[1];                 // then the high int
    }
   else {
    *pu=targar[1];                 // directly store the high int
    pu++;
    *pu=targar[0];                 // then the low int
    }
  #else
  // not DECENDIAN -- use network byte order
  if (LITEND) {                    // little-endian needs reversal
    uByte *pb;                     // work
    Int off;                       // ..
    for (pb=&d64->bytes[7]; pb>=d64->bytes; pb--) {
      off=1-((pb-d64->bytes)>>2);  // 0 then 1
      *pb=(uByte)(targar[off]&0xff);
      targar[off]>>=8;
      } // i
    }
   else { // big-endian; it's the right way round already
    pu=(uInt *)d64->bytes;         // overlay
    *pu=targar[1];                 // directly store the high int
    pu++;
    *pu=targar[0];                 // then the low int
    }
  #endif

  if (status!=0) decContextSetStatus(set, status); // pass on status
  // decimal64Show(d64);
  return d64;
  } // decimal64FromNumber

/* ------------------------------------------------------------------ */
/* decimal64ToNumber -- convert decimal64 to decNumber                */
/*   d64 is the source decimal64                                      */
/*   dn is the target number, with appropriate space                  */
/* No error is possible.                                              */
/* ------------------------------------------------------------------ */
decNumber * decimal64ToNumber(const decimal64 *d64, decNumber *dn) {
  uInt msd;                        // coefficient MSD
  uInt exp;                        // exponent top two bits
  uInt comb;                       // combination field
  uInt *pu;                        // work
  Int  need;                       // ..
  uInt sourar[2];                  // source 64-bit
  #define sourhi sourar[1]         // name the word with the sign
  #define sourlo sourar[0]         // and the lower word

  // load source from storage; this may be endian, or not
  #if DECENDIAN
  // DECENDIAN -- direct load, in the right order
  pu=(uInt *)d64->bytes;           // overlay
  if (LITEND) {
    sourar[0]=*pu;                 // directly load the low int
    pu++;
    sourar[1]=*pu;                 // then the high int
    }
   else {
    sourar[1]=*pu;                 // directly load the high int
    pu++;
    sourar[0]=*pu;                 // then the low int
    }
  #else
  // not DECENDIAN -- use network byte order
  if (LITEND) {                    // little-endian needs reversal
    const uByte *pb;               // work
    Int off;                       // ..
    for (pb=d64->bytes; pb<=&d64->bytes[7]; pb++) {
      off=1-((pb-d64->bytes)>>2);  // 1 then 0
      sourar[off]<<=8;
      sourar[off]|=*pb;
      } // i
    }
   else { // big-endian; it's the right way round already
    pu=(uInt *)d64->bytes;         // overlay
    sourar[1]=*pu;                 // directly load the high int
    pu++;
    sourar[0]=*pu;                 // then the low int
    }
  #endif

  comb=(sourhi>>26)&0x1f;          // combination field

  decNumberZero(dn);               // clean number
  if (sourhi&0x80000000) dn->bits=DECNEG; // set sign if negative

  msd=COMBMSD[comb];               // decode the combination field
  exp=COMBEXP[comb];               // ..

  if (exp==3) {                    // is a special
    if (msd==0) {
      dn->bits|=DECINF;
      return dn;                   // no coefficient needed
      }
    else if (sourhi&0x02000000) dn->bits|=DECSNAN;
    else dn->bits|=DECNAN;
    msd=0;                         // no top digit
    }
   else {                          // is a finite number
    dn->exponent=(exp<<8)+((sourhi>>18)&0xff)-DECIMAL64_Bias; // unbiased
    }

  // get the coefficient
  sourhi&=0x0003ffff;              // clean coefficient continuation
  if (msd) {                       // non-zero msd
    sourhi|=msd<<18;               // prefix to coefficient
    need=6;                        // process 6 declets
    }
   else { // msd=0
    if (!sourhi) {                   // top word 0
      if (!sourlo) return dn;        // easy: coefficient is 0
      need=3;                        // process at least 3 declets
      if (sourlo&0xc0000000) need++; // process 4 declets
      // [could reduce some more, here]
      }
     else {                          // some bits in top word, msd=0
      need=4;                        // process at least 4 declets
      if (sourhi&0x0003ff00) need++; // top declet!=0, process 5
      }
    } //msd=0

  decDigitsFromDPD(dn, sourar, need);   // process declets
  return dn;
  } // decimal64ToNumber

/* ------------------------------------------------------------------ */
/* to-scientific-string -- conversion to numeric string               */
/* to-engineering-string -- conversion to numeric string              */
/*                                                                    */
/*   decimal64ToString(d64, string);                                  */
/*   decimal64ToEngString(d64, string);                               */
/*                                                                    */
/*  d64 is the decimal64 format number to convert                     */
/*  string is the string where the result will be laid out            */
/*                                                                    */
/*  string must be at least 24 characters                             */
/*                                                                    */
/*  No error is possible, and no status can be set.                   */
/* ------------------------------------------------------------------ */
char * decimal64ToString(const decimal64 *d64, char *string){
  decNumber dn;                         // work
  decimal64ToNumber(d64, &dn);
  decNumberToString(&dn, string);
  return string;
  } // decimal64ToString

char * decimal64ToEngString(const decimal64 *d64, char *string){
  decNumber dn;                         // work
  decimal64ToNumber(d64, &dn);
  decNumberToEngString(&dn, string);
  return string;
  } // decimal64ToEngString

/* ------------------------------------------------------------------ */
/* to-number -- conversion from numeric string                        */
/*                                                                    */
/*   decimal64FromString(result, string, set);                        */
/*                                                                    */
/*  result  is the decimal64 format number which gets the result of   */
/*          the conversion                                            */
/*  *string is the character string which should contain a valid      */
/*          number (which may be a special value)                     */
/*  set     is the context                                            */
/*                                                                    */
/* The context is supplied to this routine is used for error handling */
/* (setting of status and traps) and for the rounding mode, only.     */
/* If an error occurs, the result will be a valid decimal64 NaN.      */
/* ------------------------------------------------------------------ */
decimal64 * decimal64FromString(decimal64 *result, const char *string,
                                decContext *set) {
  decContext dc;                             // work
  decNumber dn;                              // ..

  decContextDefault(&dc, DEC_INIT_DECIMAL64); // no traps, please
  dc.round=set->round;                        // use supplied rounding

  decNumberFromString(&dn, string, &dc);     // will round if needed

  decimal64FromNumber(result, &dn, &dc);
  if (dc.status!=0) {                        // something happened
    decContextSetStatus(set, dc.status);     // .. pass it on
    }
  return result;
  } // decimal64FromString

#if DECTRACE || DECCHECK
/* ------------------------------------------------------------------ */
/* decimal64Show -- display a decimal64 in hexadecimal [debug aid]    */
/*   d64 -- the number to show                                        */
/* ------------------------------------------------------------------ */
// Also shows sign/cob/expconfields extracted
void decimal64Show(const decimal64 *d64) {
  char buf[DECIMAL64_Bytes*2+1];
  Int i, j=0;

  #if DECENDIAN
  if (LITEND) {
    for (i=0; i<DECIMAL64_Bytes; i++, j+=2) {
      sprintf(&buf[j], "%02x", d64->bytes[7-i]);
      }
    printf(" D64> %s [S:%d Cb:%02x Ec:%02x] LittleEndian\n", buf,
           d64->bytes[7]>>7, (d64->bytes[7]>>2)&0x1f,
           ((d64->bytes[7]&0x3)<<6)| (d64->bytes[6]>>2));
    }
   else {
  #endif
    for (i=0; i<DECIMAL64_Bytes; i++, j+=2) {
      sprintf(&buf[j], "%02x", d64->bytes[i]);
      }
    printf(" D64> %s [S:%d Cb:%02x Ec:%02x] BigEndian\n", buf,
           decimal64Sign(d64), decimal64Comb(d64), decimal64ExpCon(d64));
  #if DECENDIAN
    }
  #endif
  } // decimal64Show
#endif

/* ================================================================== */
/* Shared utility routines and tables                                 */
/* ================================================================== */

// define and include the conversion tables to use
#define DEC_BIN2DPD 1         // used for all sizes
#if DECDPUN==3
  #define DEC_DPD2BIN 1
#else
  #define DEC_DPD2BCD 1
#endif
#include "tr/executor/base/decNumber/decDPD.h"           // lookup tables

// The maximum number of decNumberUnits needed for a working copy of
// the units array is the ceiling of digits/DECDPUN, where digits is
// the maximum number of digits in any of the formats for which this
// is used.  decimal128.h must not be included in this module, so, as
// a very special case, that number is defined as a literal here.
#define DECMAX754   34
#define DECMAXUNITS ((DECMAX754+DECDPUN-1)/DECDPUN)

/* ------------------------------------------------------------------ */
/* Combination field lookup tables (uInts to save measurable work)    */
/*                                                                    */
/*      COMBEXP - 2-bit most-significant-bits of exponent             */
/*                [11 if an Infinity or NaN]                          */
/*      COMBMSD - 4-bit most-significant-digit                        */
/*                [0=Infinity, 1=NaN if COMBEXP=11]                   */
/* Both indexed by the combination field (5 bits)                     */
/* ------------------------------------------------------------------ */
const uInt COMBEXP[32]={0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
                        2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3};
const uInt COMBMSD[32]={0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7,
                        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 9, 8, 9, 0, 1};

/* ------------------------------------------------------------------ */
/* decDigitsToDPD -- pack coefficient into DPD form                   */
/*                                                                    */
/*   dn   is the source number (assumed valid, max DECMAX754 digits)  */
/*   targ is 1, 2, or 4-element uInt array, which the caller must     */
/*        have cleared to zeros                                       */
/*   shift is the number of 0 digits to add on the right (normally 0) */
/*                                                                    */
/* The coefficient must be known small enough to fit.  The full       */
/* coefficient is copied, including the leading 'odd' digit.  This    */
/* digit is retrieved and packed into the combination field by the    */
/* caller.                                                            */
/*                                                                    */
/* The target uInts are altered only as necessary to receive the      */
/* digits of the decNumber.  When more than one uInt is needed, they  */
/* are filled from left to right (that is, the uInt at offset 0 will  */
/* end up with the least-significant digits).                         */
/*                                                                    */
/* shift is used for 'fold-down' padding.                             */
/*                                                                    */
/* No error is possible.                                              */
/* ------------------------------------------------------------------ */
#if DECDPUN<=4
// Constant multipliers for divide-by-power-of five using reciprocal
// multiply, after removing powers of 2 by shifting, and final shift
// of 17 [we only need up to **4]
static const uInt multies[]={131073, 26215, 5243, 1049, 210};
// QUOT10 -- macro to return the quotient of unit u divided by 10**n
#define QUOT10(u, n) ((((uInt)(u)>>(n))*multies[n])>>17)
#endif
void decDigitsToDPD(const decNumber *dn, uInt *targ, Int shift) {
  Int  cut;                   // work
  Int  n;                     // output bunch counter
  Int  digits=dn->digits;     // digit countdown
  uInt dpd;                   // densely packed decimal value
  uInt bin;                   // binary value 0-999
  uInt *uout=targ;            // -> current output uInt
  uInt  uoff=0;               // -> current output offset [from right]
  const Unit *inu=dn->lsu;    // -> current input unit
  Unit  uar[DECMAXUNITS];     // working copy of units, iff shifted
  #if DECDPUN!=3              // not fast path
    Unit in;                  // current unit
  #endif

  if (shift!=0) {             // shift towards most significant required
    // shift the units array to the left by pad digits and copy
    // [this code is a special case of decShiftToMost, which could
    // be used instead if exposed and the array were copied first]
    const Unit *source;                 // ..
    Unit  *target, *first;              // ..
    uInt  next=0;                       // work

    source=dn->lsu+D2U(digits)-1;       // where msu comes from
    target=uar+D2U(digits)-1+D2U(shift);// where upper part of first cut goes
    cut=DECDPUN-MSUDIGITS(shift);       // where to slice
    if (cut==0) {                       // unit-boundary case
      for (; source>=dn->lsu; source--, target--) *target=*source;
      }
     else {
      first=uar+D2U(digits+shift)-1;    // where msu will end up
      for (; source>=dn->lsu; source--, target--) {
        // split the source Unit and accumulate remainder for next
        #if DECDPUN<=4
          uInt quot=QUOT10(*source, cut);
          uInt rem=*source-quot*powers[cut];
          next+=quot;
        #else
          uInt rem=*source%powers[cut];
          next+=*source/powers[cut];
        #endif
        if (target<=first) *target=(Unit)next; // write to target iff valid
        next=rem*powers[DECDPUN-cut];   // save remainder for next Unit
        }
      } // shift-move
    // propagate remainder to one below and clear the rest
    for (; target>=uar; target--) {
      *target=(Unit)next;
      next=0;
      }
    digits+=shift;                 // add count (shift) of zeros added
    inu=uar;                       // use units in working array
    }

  /* now densely pack the coefficient into DPD declets */

  #if DECDPUN!=3                   // not fast path
    in=*inu;                       // current unit
    cut=0;                         // at lowest digit
    bin=0;                         // [keep compiler quiet]
  #endif

  for(n=0; digits>0; n++) {        // each output bunch
    #if DECDPUN==3                 // fast path, 3-at-a-time
      bin=*inu;                    // 3 digits ready for convert
      digits-=3;                   // [may go negative]
      inu++;                       // may need another

    #else                          // must collect digit-by-digit
      Unit dig;                    // current digit
      Int j;                       // digit-in-declet count
      for (j=0; j<3; j++) {
        #if DECDPUN<=4
          Unit temp=(Unit)((uInt)(in*6554)>>16);
          dig=(Unit)(in-X10(temp));
          in=temp;
        #else
          dig=in%10;
          in=in/10;
        #endif
        if (j==0) bin=dig;
         else if (j==1)  bin+=X10(dig);
         else /* j==2 */ bin+=X100(dig);
        digits--;
        if (digits==0) break;      // [also protects *inu below]
        cut++;
        if (cut==DECDPUN) {inu++; in=*inu; cut=0;}
        }
    #endif
    // here there are 3 digits in bin, or have used all input digits

    dpd=BIN2DPD[bin];

    // write declet to uInt array
    *uout|=dpd<<uoff;
    uoff+=10;
    if (uoff<32) continue;         // no uInt boundary cross
    uout++;
    uoff-=32;
    *uout|=dpd>>(10-uoff);         // collect top bits
    } // n declets
  return;
  } // decDigitsToDPD

/* ------------------------------------------------------------------ */
/* decDigitsFromDPD -- unpack a format's coefficient                  */
/*                                                                    */
/*   dn is the target number, with 7, 16, or 34-digit space.          */
/*   sour is a 1, 2, or 4-element uInt array containing only declets  */
/*   declets is the number of (right-aligned) declets in sour to      */
/*     be processed.  This may be 1 more than the obvious number in   */
/*     a format, as any top digit is prefixed to the coefficient      */
/*     continuation field.  It also may be as small as 1, as the      */
/*     caller may pre-process leading zero declets.                   */
/*                                                                    */
/* When doing the 'extra declet' case care is taken to avoid writing  */
/* extra digits when there are leading zeros, as these could overflow */
/* the units array when DECDPUN is not 3.                             */
/*                                                                    */
/* The target uInts are used only as necessary to process declets     */
/* declets into the decNumber.  When more than one uInt is needed,    */
/* they are used from left to right (that is, the uInt at offset 0    */
/* provides the least-significant digits).                            */
/*                                                                    */
/* dn->digits is set, but not the sign or exponent.                   */
/* No error is possible [the redundant 888 codes are allowed].        */
/* ------------------------------------------------------------------ */
void decDigitsFromDPD(decNumber *dn, const uInt *sour, Int declets) {

  uInt  dpd;                       // collector for 10 bits
  Int   n;                         // counter
  Unit  *uout=dn->lsu;             // -> current output unit
  Unit  *last=uout;                // will be unit containing msd
  const uInt *uin=sour;            // -> current input uInt
  uInt  uoff=0;                    // -> current input offset [from right]

  #if DECDPUN!=3
  uInt  bcd;                       // BCD result
  uInt  nibble;                    // work
  Unit  out=0;                     // accumulator
  Int   cut=0;                     // power of ten in current unit
  #endif
  #if DECDPUN>4
  uInt const *pow;                 // work
  #endif

  // Expand the densely-packed integer, right to left
  for (n=declets-1; n>=0; n--) {   // count down declets of 10 bits
    dpd=*uin>>uoff;
    uoff+=10;
    if (uoff>32) {                 // crossed uInt boundary
      uin++;
      uoff-=32;
      dpd|=*uin<<(10-uoff);        // get waiting bits
      }
    dpd&=0x3ff;                    // clear uninteresting bits

  #if DECDPUN==3
    if (dpd==0) *uout=0;
     else {
      *uout=DPD2BIN[dpd];          // convert 10 bits to binary 0-999
      last=uout;                   // record most significant unit
      }
    uout++;
    } // n

  #else // DECDPUN!=3
    if (dpd==0) {                  // fastpath [e.g., leading zeros]
      // write out three 0 digits (nibbles); out may have digit(s)
      cut++;
      if (cut==DECDPUN) {*uout=out; if (out) {last=uout; out=0;} uout++; cut=0;}
      if (n==0) break;             // [as below, works even if MSD=0]
      cut++;
      if (cut==DECDPUN) {*uout=out; if (out) {last=uout; out=0;} uout++; cut=0;}
      cut++;
      if (cut==DECDPUN) {*uout=out; if (out) {last=uout; out=0;} uout++; cut=0;}
      continue;
      }

    bcd=DPD2BCD[dpd];              // convert 10 bits to 12 bits BCD

    // now accumulate the 3 BCD nibbles into units
    nibble=bcd & 0x00f;
    if (nibble) out=(Unit)(out+nibble*powers[cut]);
    cut++;
    if (cut==DECDPUN) {*uout=out; if (out) {last=uout; out=0;} uout++; cut=0;}
    bcd>>=4;

    // if this is the last declet and the remaining nibbles in bcd
    // are 00 then process no more nibbles, because this could be
    // the 'odd' MSD declet and writing any more Units would then
    // overflow the unit array
    if (n==0 && !bcd) break;

    nibble=bcd & 0x00f;
    if (nibble) out=(Unit)(out+nibble*powers[cut]);
    cut++;
    if (cut==DECDPUN) {*uout=out; if (out) {last=uout; out=0;} uout++; cut=0;}
    bcd>>=4;

    nibble=bcd & 0x00f;
    if (nibble) out=(Unit)(out+nibble*powers[cut]);
    cut++;
    if (cut==DECDPUN) {*uout=out; if (out) {last=uout; out=0;} uout++; cut=0;}
    } // n
  if (cut!=0) {                         // some more left over
    *uout=out;                          // write out final unit
    if (out) last=uout;                 // and note if non-zero
    }
  #endif

  // here, last points to the most significant unit with digits;
  // inspect it to get the final digits count -- this is essentially
  // the same code as decGetDigits in decNumber.c
  dn->digits=(last-dn->lsu)*DECDPUN+1;  // floor of digits, plus
                                        // must be at least 1 digit
  #if DECDPUN>1
  if (*last<10) return;                 // common odd digit or 0
  dn->digits++;                         // must be 2 at least
  #if DECDPUN>2
  if (*last<100) return;                // 10-99
  dn->digits++;                         // must be 3 at least
  #if DECDPUN>3
  if (*last<1000) return;               // 100-999
  dn->digits++;                         // must be 4 at least
  #if DECDPUN>4
  for (pow=&powers[4]; *last>=*pow; pow++) dn->digits++;
  #endif
  #endif
  #endif
  #endif
  return;
  } //decDigitsFromDPD

redpajama_set_name: RedPajamaGithub


text:
Bold vision of Modi 2.0: Moving from 'garibi hatao' to 'amiri lao' depends on embedding audacious new mindsets
Times of India | July 16, 2019
On Sunday night the anchor of a TV show sneeringly and repeatedly referred to Prime Minister Narendra Modi's $5 trillion GDP target. The show was on the poor state of our cities and the well-meaning anchor didn't mean to demonise economic growth even though it came out sounding that way. When this was pointed out to her, she replied in her defence that India should grow but with responsibility to the environment. No one could disagree with that but the viewer was left unsure about the virtues of growth.
Ever since the $5 trillion goal was announced last week, it has set off a healthy debate with Modi calling his critics "professional pessimists". It is a good thing for a nation to aspire to a target. It also suggests that Modi 2.0 has a new mindset – a happy change from the "garibi hatao" mindset of giveaways that afflicted Modi 1.0 after Rahul Gandhi's jibe about a "suit-boot sarkar", which led to an unhappy race to the bottom during the recent general election. The ambitious target restores the growth mindset that got Modi elected in the first place in 2014.
The pursuit of higher GDP is easy to malign – it was invented during the industrial age and has its limitations. Many blame growth for harming the environment. They want governments to stop chasing money and start caring about the people. But it is also understandable why GDP remains the best guide for policy makers. In recent years growth has lifted more than a billion people around the world out of crushing poverty.
Only through growth does a society create jobs. Only growth provides taxes to the government to spend on education (that brings opportunity and equity) and healthcare (that improves nutrition, decreases child mortality and allows people to live longer.) In India, growth provided the means to bring subsidised gas to rural households to counter indoor air pollution from burning dung and wood for cooking. In 1990, this insidious form of pollution caused more than 8% of all deaths in the world; with growth and prosperity, this figure is down to nearly half today. Even outdoor pollution rises sharply when a poor nation begins to develop but declines as the nation prospers and has the resources to control it. It's not surprising that nations with high per capita GDP enjoy the highest ranks on the indices of human development and happiness.
It was not appropriate in her Budget speech to extoll the virtues of GDP growth, but the finance minister could have explained how achieving her bold target was crucial to creating jobs for the millions who voted for BJP. I would go further and make a new slogan for Modi 2.0, following Deng's example in China – "Not only garibi hatao, but amiri lao." This would capture the hopes and aspirations of the young. Instead of turning defensive about suit-boot, the right answer from a reformist prime minister should be, "Yes, I want every Indian to aspire to the comforts of a suit-boot lifestyle."
Success in achieving the $5 trillion target depends on implementing bold reforms and a change in other mindsets as well. Export pessimism, inherited from the 1950s, still persists and India's share in global exports remains a measly 1.7%. No country became middle class without exports. We must reverse the unfortunate protectionism that has afflicted the nation since 2014 and change our slogan to "Make in India for the World". Only through exports will come the high productivity jobs and acche din for our aspiring youth.
Second, growth and jobs will only come through private investment. Investor sentiment is weak and the biggest investors find India's environment turning hostile. The Budget has exacerbated this and it may be one reason for the stock market crash. Third, although it has become a major exporter of farm produce, India continues to treat its farmers like poor peasants. Farmers need freedom of distribution (scrap APMCs, Essential Commodities Act, etc), production (encourage contract farming), cold chains (liberalise multi-brand retail), and a stable policy on exports. Bleeding subsidies for fertilisers and PDS must be replaced by direct benefit transfers.
It is not enough to implement reforms, Modi needs to sell them. To begin with, sell them to his party, to RSS and allied saffron units. And then to the rest of the country. Margaret Thatcher used to say famously that she spent 20% of her time doing reforms and 80% selling them. The previous reformers – Narasimha Rao, Vajpayee, and Manmohan Singh – failed in this task. With his overwhelming mandate Modi should expend some of his political capital in this task. It is high time India stopped reforming by stealth.
In democracies the winner's honeymoon usually lasts a hundred days. The best answer to critics who are sceptical about the $5 trillion goal is to show tangible results during this period. For example, pull out the land and labour reform bills from the Modi 1.0 closet; improve them, and begin to "sell" these reforms in anticipation of getting them through the Rajya Sabha this time around. The FM on her part should quickly follow up on her bold disinvestment target by announcing a time bound plan for the strategic sale of other public sector companies (apart from Air India). Actions such as these will gain the peoples' trust in the ambitious $5 trillion number. And follow up with quarterly progress reports to the nation to reinforce confidence in Modi 2.0's bold vision.
Posted by gurcharan at 11:41 AM No comments:
हमें चाहिए असरदार राज और ताकतवर समाज
दैनिक भास्कर | जून 14, 2019
नरेन्द्र मोदी के फिर चुने जाने के बाद धीरे-धीरेबढ़ती तानाशाही का भय फिर जताया जारहा है लेकिन, मुझे उलटी ही चिंता है। मुझे शक्तिशालीसे नहीं बल्कि कमजोर व बेअसर राज्य-व्यवस्था(राज) से डर लगता है। कमजोर राज्य-व्यवस्था मेंकमजोर संस्थान होते हैं, खासतौर पर कानून का कमजोरराज होता है, जिसे न्याय देने में दर्जनों साल लग जातेहैं और अदालतों में 3.3 करोड़ प्रकरण निलंबित रहतेहैं। यह कमजोरों को शक्तिशाली के खिलाफ संरक्षणनहीं देती और विधायिका के हर तीन में से एक सदस्यके आपराधिक रिकॉर्ड को बर्दाश्त कर लेती है। कमजोरराज्य-व्यवस्था लोगों के मन में निश्चिंतता के बजायअनिश्चितता पैदा करती है और पुलिसकर्मियों, मंत्रियोंऔर जजों को खरीदे जाने की अनदेखी करती है। यहकार्यपालिका को तेजी से कार्रवाई करने से रोकती है औरसुधारों को घोंघे की रफ्तार से लागू करती है।
मोदी ने पिछले पांच वर्षों में यह सबक लिया होगाकि भारतीय प्रधानमंत्री की शक्ति की सीमा है। उदारवादीलोकतांत्रिक राज्य-व्यवस्था तीन स्तंभों पर आधारित होतीहै-प्रभावी कार्यपालिका, कानून का राज और जवाबदेही।हम तीसरे स्तंभ की बहुत चर्चा करते हैं, जबकि असलीमुद्दा पहले का है। चूंकि देश हमेशा चुनावी मोड में रहताहै तो इसकी समस्या जवाबदेही की नहीं है। समस्या राज्यव्यवस्था के काम करवाने की योग्यता की है। भारतीयप्रधानमंत्री इसलिए भी कमजोर है, क्योंकि असली शक्तितो राज्यों के मुख्यमंत्रियों में निहित है, जो भारत केअसली शासक हैं। विडंबना है कि मुख्यमंत्री के रूप मेंनरेन्द्र मोदी के प्रदर्शन के कारण उन्हें 2014 में चुना गयाथा और हमने मान लिया था कि वे प्रधानमंत्री बनने केबाद वही जादू दिखाएंगे लेकिन, ऐसा हुआ नहीं।
2014 में नरेन्द्र मोदी ने लोगों से कहा कि वे उन्हेंभारत को पूरी तरह बदलने के लिए दस साल दें। यहमौका उन्हें मिल गया है। वह बदलाव आर्थिक सुधारों सेनहीं, बल्कि शासन संबंधी सुधारों से शुरू होना चाहिए।मोदी ब्रिटेन की पूर्व प्रधानमंत्री मार्गरेट थैचर से प्रेरणा लेसकते हैं। उन्होंने शासन संबंधी कठिन सुधारों को दूसरेकार्यकाल के लिए रखा। भारत में राज्य-व्यवस्था कीक्षमता बढ़ाना आसान नहीं है, क्योंकि चीन के विपरीतभारत ऐतिहासिक रूप से एक कमजोर राज्य-व्यवस्थावाला देश रहा है। हमारा इतिहास स्वतंत्र राज्यों का है,जबकि चीन का इतिहास एकल साम्राज्यों का है। भारतके चार साम्राज्य -मौर्य, गुप्त, मुगल और ब्रिटिश- चीनके सबसे कमजोर साम्राज्य से भी कमजोर थे।
हमारी पहली वफादारी समाज के प्रति है- हमारापरिवार, हमारी जाति, हमारा गांव। चाहे राज्य-व्यवस्थाज्यादातर कमजोर रही पर भारत में हमेशा शक्तिशालीसमाज रहा है। इसलिए दमन शासन ने नहीं किया, यहसमाज की ओर से हुआ मसलन जैसा ब्राह्मणों ने कियाऔर हमें दमन से बचाने के लिए बुद्ध जैसे संन्यासी औरसंतों की एक सतत धारा की जरूरत पड़ी। चूंकि सत्ताऐतिहासिक रूप से बिखरी हुई थी तो भारत 70 सालपहले संघीय लोकतंत्र और चीन केवल तानाशाही राष्ट्रही बन सकता था। इतिहास से मिला सबक है कि हमेंमजबूत राज्य-व्यवस्था चाहिए और राज्य-व्यवस्था कोजवाबदेह बनाने के लिए ताकवर समाज चाहिए।
विडंबना है कि आज चीन की सरकार भारत कीसरकार से ज्यादा लोकप्रिय है, क्योंकि इसने असाधारणप्रदर्शन किया है। न सिर्फ इसने गरीबी मिटा दी है, देश कोमध्यवर्गीय बना दिया बल्कि यह लगातार दिन-प्रतिदिनके शासन में सुधार करती जा रही है। कुल-मिलाकरचीन ने आम आदमी को बेहतर शिक्षा व स्वास्थ्य दियाऔर उनका कल्याण किया। तानाशाही व्यवस्था इसकीसफलता का रहस्य नहीं है बल्कि रहस्य यह है कि इसनेराज्य की क्षमता पर फोकस रखा। जहां चुनावों ने भारतीयलोगों को अधिक स्वतंत्रता दी है (और यह बहुत बड़ीउपलब्धि है), चीन की सरकार ने बेहतर शासन के जरियेदिन-प्रतिदिन की निश्चिंत ज़िंदगी दी है। कहने का मतलबयह नहीं कि भारतीयों को अपनी व्यवस्था चीनियों सेबदल लेनी चाहिए (उन्हें भी ऐसा नहीं करना चाहिए)।किंतु यदि आप भारतीय व चीनी आम आदमी की जगहखुद को रखकर देखें तो आपको भारतीय लोकतंत्र द्वाराचुनी गई ज्यादातर सरकारों से हताशा होगी।
चीन ने अपनी नौकरशाही को ज्यादा प्रेरित व प्रभावीबनाकर शासन की क्षमता बढ़ाई। इसका मतलब हैअधिकारियों के प्रदर्शन पर निकट से निगाह रखना औरउन्हें पुरस्कृत करना है। चीनी नौकरशाही में पदोन्नतिवरिष्ठता से नहीं बल्कि नागरिकों को बेहतर सेवाएं देनेके आधार पर होती है। इससे चीनी नौकरशाह, नियमों सेबंधे भारतीय अधिकारियों के विपरीत अधिक व्यावहारिकरवैया अपनाने को प्रेरित होते हैं। भारतीय नौकरशाहीदशकों से पीड़ित रही है, क्योंकि किसी राजनेता में उनअत्यंत जरूरी सुधार लागू करने का कौशल नहीं था,जिस पर पचास साल पहले सहमति बनी थी। कर वसूलीका एक ईमानदार और पारदर्शी तंत्र, अधिक कर वसूलकर सकेगा। यही बात राज्य-व्यवस्था के तीन अंगों –न्यायपालिका, पुलिस व संसद में सुधारों पर लागू होती है।
क्या नरेन्द्र मोदी ऐसे प्रभावी नेता साबित होंगे, जोनिहित स्वार्थी तत्वों का सामना करके राज्य-व्यवस्था कीक्षमता बढ़ाने का साहस दिखाएंगे? उन्हें गुजरात व केंद्रदोनों स्तरों पर काफी अनुभव प्राप्त है। वे निहित स्वार्थीतत्वों से टकराने के जोखिम भी जानते हैं। शुरुआत स्पष्टदिखते आसान सुधारों से हो सकती है। यानी पहले तोमौजूदा कानून लागू करें, फिर नए कानून बनाएं। नीति कारिश्ता 'क्या' से नहीं बल्कि 'कैसे' से होता है। हर कोईजानता है कि 'क्या' किया जाना चाहिए पर सवाल तो यहहै कि इसे 'कैसे' किया जाए। भारत में बहुत सारे 'कानून'हैं पर चीन में 'व्यवस्था' है। आप को दोनों की जरूरतहै- 'कानून और व्यवस्था' (लॉ एंड ऑर्डर)।
हालांकि, केंद्रीयकृत शासन भारत के लिए ठीकनहीं है पर भारत का प्रधानमंत्री इतना मजबूत होताहै कि वह केंद्र व राज्य, दोनों स्तरों पर शासन कीक्षमता बढ़ा सकता है। प्रधानमंत्री मोदी को लोगों काजबर्दस्त समर्थन मिला है, जो शासन में सुधार के लिएसुनहरा मौका है। सरकारी संस्थानों में सुधार, आर्थिकसुधारों से कहीं अधिक कठिन होगा लेकिन, फिर उसकेफायदे भी कहीं ज्यादा होंगे। यदि मोदी सफल होते हैं तोइतिहास में उन्हें न सिर्फ महान नेता के रूप में बल्किइस बात के लिए भी जाना जाएगा कि उन्होंने 'न्यूनतमसरकार,अधिकतम शासन' का अपना वादा पूरा किया।
Posted by gurcharan at 5:06 PM 1 comment:
Strong state, strong society: The reforms India needs Prime Minister Narendra Modi to courageously undertake
The Times of India | May 31, 2019
With the re-election of Prime Minister Narendra Modi, fears are again being expressed of creeping authoritarianism in India. But i worry about the opposite problem. I do not fear a strong state but a weak and ineffective one. A weak state has frail institutions, especially a feeble rule of law that takes a dozen years to give justice and has 3.3 crore cases pending in the courts. A weak state does not protect the weak against the strong. A weak state creates uncertainty rather than predictability in peoples' minds and allows policemen, ministers and judges to be bought. It also prevents quick action by the executive and slows reforms to a snail's pace because of warped incentives within the bureaucracy.
One lesson that Modi should have learnt in the past five years is about the limits of the Indian prime minister's power. A liberal democratic state rests on three pillars: an effective executive, the rule of law and accountability. We obsess over the third pillar when the real issue is the first. With the nation always in election mode, India's problem is not accountability, it is about the ability of the state to get things done.
The Indian prime minister is weak also because real power resides with state chief ministers, who are the real rulers of India. Ironically, it was Modi's performance as chief minister that got him elected in 2014, and we assumed that he would carry that magic when he became prime minister. It didn't happen. Although Indira Gandhi came close to becoming a dictator, she too discovered the limits of her power.
Illustration: Ajit Ninan
In 2014, Modi asked the Indian people to give him 10 years to transform India. Well, here is his chance. That transformation must begin not with economic reform but with reform of governance. Modi can take inspiration from Margaret Thatcher, who saved up the more difficult reforms – the reforms of the state – for her second term. It will not be easy to enhance state capacity because India has historically been a weak state unlike China. Our history is that of independent kingdoms while China's is a history of unitary empires. The four empires of India – Maurya, Gupta, Mughal and British – were weaker than the weakest Chinese empire.
Our first loyalty is to society – our family, our jati, our village. Although the state was mostly weak, India always had a strong society. Hence, oppression did not come from the state but from society – from the Brahmins, for example, and it needed a constant stream of renouncers and saints, like the Buddha, to protect us from oppression. Because power was dispersed historically, India could only have become a federal democracy 70 years ago and China could only have become an authoritarian state. The lesson from history is that we need a strong state to get things done and we need a strong society to make the state accountable.
China's government today is ironically more popular than India's because it has delivered outstanding performance. Not only has it wiped out poverty, making a poor country middle class, but it has relentlessly improved day to day governance. In the end, China has delivered better education, health and welfare to aam admi. The secret of its success is not authoritarianism but the fact that it has focussed on state capacity. While elections have given the Indian people more freedom (and this is a great achievement) the Chinese state has given its people a more predictable day to day life through better governance. This is not to suggest that Indians will exchange their system for the Chinese (nor should they) but if you try and put yourself in the shoes of the Indian and the Chinese aam admi, you must feel disappointed with our democracy.
China has succeeded in enhancing the capacity of its state by making its bureaucracy more motivated and effective. This means closely monitoring and rewarding the performance of officials. Promotions in the Chinese bureaucracy are not based on seniority but upon superior delivery of services to citizens. These incentives in turn motivate Chinese bureaucrats to be more pragmatic – unlike rule bound Indian officials – and they search for and re-apply the best practices that deliver on the ground.
India's bureaucracy has suffered for decades because no political leader has had the guts to implement the crying reforms that everyone has agreed upon for 50 years. An honest and transparent tax collecting machinery will collect more taxes in the end. The same thing applies to reforms in the three other parts of the state – the judiciary, the police and the Parliament – where countless reform commissions have endorsed the same blueprints for change.
Will Modi be the strong leader who has the courage to take on vested interests and enhance the capacity of the Indian state? He certainly has plenty of experience, both in Gujarat and in the Centre, and he also knows the pitfalls in taking on vested interests. The way to begin is to catch low hanging fruit. This means to first implement existing laws; then only create new laws. When it comes to policy, it is not about the 'what' but about the 'how'. Everyone knows what is to be done; the real question is, how to do it. India has plenty of laws but China has order. You need both 'law and order', as the American TV serial says.
Reforming institutions will be much tougher than economic reform but the rewards will also be greater. If he succeeds, Modi will go down in history as the one who fulfilled his promise of 'minimum government, maximum governance'. India has done well when it has bet on its people; it is about time to bet on its government.
The Modi Mirage
Foreign Affairs | April 11, 2019
Why I Fell Out of Love With India's Reformist Prime Minister
India in 2014 was a troubled and discontented nation. Inflation was in the double digits, growth was declining, and corruption was rampant. Sick of the drift and paralysis in the government of Prime Minister Manmohan Singh, many Indians longed for a leader who would get the nation out of the mess. The situation was not unlike Britain's in the late 1970s. Britain found Margaret Thatcher; India found Narendra Modi.
The sudden ascent of the tough and stocky 63-year-old as a serious contender for the nation's highest office caught everyone by surprise. As chief minister of the state of Gujarat, Modi had built a vibrant economy and reduced corruption. His campaign speeches, with their single-minded focus on vikas (development) were fresh and mesmerizing. But people were also wary. Modi was considered dictatorial and anti-Muslim. Above all, he carried the stain of Hindu-Muslim riots in 2002, when his state government looked the other way as nearly a thousand people, most of them Muslims, were killed over several days.
I, too, worried about electing a politician like Modi. Yet I also believed that the Indian government was not doing enough to capitalize on its extremely young population, about half of which is under the age of 25. If those millions of working-age women and men could be lifted from underemployment in the informal sector to well-paying jobs, the gains in overall prosperity would far outweigh the burden of supporting the old and the very young. Economists call this the "demographic dividend," which is known to spur GDP growth in developing countries. If managed well, India's economy had the potential to lift millions from poverty and send the country on a path to middle-income status. But within a dozen years, the window of opportunity would close as India's youth began to age. Among the candidates in the 2014 elections, Modi seemed to be the only one to grasp this, making him the country's best hope for reaping the demographic dividend. The alternative was Rahul Gandhi—a scion of the political dynasty that had governed the country for the better part of six decades—and he did not even come close.
I contemplated a dilemma. Should India risk its precious commitment to secularism and pluralism for the sake of prosperity, jobs, and fighting corruption? I agonized for months and then did something unusual. I decided, for the first time in my life, to vote for the right-wing, Hindu nationalist Bhartiya Janata Party (BJP)—and I did so because Modi was its leader. I was among the first Indian liberals to endorse him publicly, in my Sunday column in the Times of India and in six other Indian papers.
There was no denying that Modi was a sectarian and authoritarian figure. But I knew that India's democratic institutions were strong enough to prevail over those tendencies. Nothing would absolve Modi of his responsibility for the 2002 riots. But neither would anything lessen the moral imperative to fight widespread poverty with sound economic policy. A vote for the BJP was, in my mind, a calculated risk. Millions of Indians agreed, and Modi swept the polls.
To voters used to being treated like victims, Modi's uplifting image and rhetoric were a welcome change. The Indian National Congress of Rahul Gandhi cast its constituents as defenseless casualties of global capitalism; a slate of caste-based parties promised justice for those harmed by India's rigid social hierarchies. But Modi—the son of a chaiwallah, one of India's ubiquitous tea-sellers—embodied the promise of social mobility across the boundaries of caste and class. That his English was labored at best only burnished his credentials as a man of the people. His landslide victory credited the dignity of shopkeepers and invited India's Anglophile elite to re-examine its Brahmanical prejudices.
Modi extended the BJP's appeal to India's rapidly growing middle class, which had enjoyed the fruits of economic liberalization in the 1990s. But in so doing, he created a divided party, with an economically liberal wing and a culturally conservative wing. Many in the former did not subscribe to the BJP's cultural agenda of Hindutva, the belief that India should be a nation of and for the Hindus. Even if these voters had supported Modi's agenda of economic reform, his party's majoritarian politics left a feeling of discomfort that was hard to shake.
Five years on, I am disillusioned. Modi has delivered only partially on his economic promises, and he has unconscionably polarized the country. With a GDP growth rate of roughly seven percent, India's is the fastest-growing major economy, but this growth has not brought the promised jobs. Nor has Modi leveraged his outright majority in the lower house of parliament (rare in Indian politics) to execute the far-reaching reforms that would have made India more competitive. He could, for example, have reformed the distribution of farm commodities and thus helped prevent the recent collapse in food prices, which has destroyed countless farmers' livelihoods. He could have used India's slow-burning banking crisis to privatize the worst-performing public-sector banks, which are going the way of Air India, the state airline that has been mismanaged into near bankruptcy. No other democracy has 70 percent of its financial assets locked in public-sector banks, where the temptation is high to issue loans based on political ties. Modi could also have focused more on exports. Instead, he has been gradualist like his predecessors, broadly operating within the old consensus of excessive public ownership and state control.
To be sure, Modi has delivered on two major promises: inflation has come down from double digits to between two and three percent. Corruption has not vanished, but it has declined, with the country moving up seven spots in Transparency International's Corruptions Perceptions Index since 2014. Several of Modi's reforms have been game-changers. Although poorly implemented, the landmark Goods and Services Tax has replaced a messy patchwork of state-level taxes, finally turning all of India into a single market. By some estimates, its introduction may increase annual GDP growth by as much as 2 percent in the long term. A new bankruptcy code will ensure that the country's assets are more productively employed, as dying companies can now be taken over by new owners. Because 300 million Indians now have bank accounts, and more than a billion have cell phones and unique biometric identity cards, mobile banking has taken off. The government can therefore gradually switch from leaky subsidies to direct cash transfers. Similarly, transactions between citizens and the state are moving online, leading India to move up over 50 spots in the World Bank's Ease of Doing Business Index since 2014. Modi has begun the job of making India function better.
Modi has broadly operated within the old consensus of excessive public ownership and state control.
Other moves were smaller but important nonetheless. India began auctioning natural resources online in a transparent manner, liberalized rules for foreign investment, deregulated energy prices, and allowed the self-attestation of legal documents (which freed citizens from running around to get their documents attested by government officials or corrupt notaries). Much-needed legislation for labour reform and land acquisition got stuck, however, because the BJP did not have a majority in the upper house.
And Modi's boldest move turned out to be a blunder. On November 8, 2016, he proclaimed that 500-rupee and 1,000-rupee notes would no longer be legal tender—a sudden announcement that rendered worthless almost 87 percent of the currency in circulation. The measure, an attempt to rein in corruption and the informal economy, touched the life of every Indian with crushing effect. For months, people stood in line outside banks to change their notes. The liquidity crisis destroyed the livelihoods of millions of people. Two years later, most economists believe that demonetization is one of the worst ways to tackle corruption and the untaxed economy. Reducing institutional opportunities for bribery and embezzlement is far more productive.
Some of the most robust government institutions have weakened: official data on jobs, for example, can no longer be trusted. Meanwhile, fears about Modi's majoritarian politics have come partially true. Although bloody riots like those in Gujarat in 2002 have not recurred, diverse India's prized social cohesion is under threat, and religious minorities feel insecure. The BJP's obsession with Hindu nationalism has legitimated bans on beef production in the populous Hindi-speaking northern states and emboldened vigilantes who attack anyone suspected of mistreating cows.
At the heart of Modi's failure is the weak capacity of the Indian state. Modi relied excessively on the civil service to formulate complex reforms, rather than bringing in outside experts. Civil servants are often inclined to protect the status quo instead of executing new initiatives—especially in a country where seniority, not results, still gets people promoted.
Consider Modi's Make in India program, a push to make the country more competitive in global markets. Indian civil servants lacked the competence to oversee such an effort. Moreover, since Jawaharlal Nehru was prime minister in the 1950s, Indian civil servants have looked upon exports with skepticism. Yet if India could grow its abysmal 1.7 percent share of global trade to 2.5 percent, the jobs now leaving China could come to India, rather than to Vietnam, Bangladesh, and Indonesia.
Moreover, Modi announced too many programs at once and tried to execute them all himself. He centralized decision-making in the prime minister's office—something he had done successfully as chief minister of Gujarat. But India, with its federal structure, is not Gujarat. A chief minister may be all-powerful in a given state, but a prime minister has to learn to implement programs by motivating and cajoling regional leaders across the country. To make matters worse, Modi seems to have been continuously in an election mode for the past five years. Constant campaigning diverts the executive's attention from executing reforms that often bring short-term pain for long-term gain. To be fair, Modi was aware of this problem— he championed introducing simultaneous state elections across the country, but the idea lacked support among other parties.
Modi is ultimately not a liberal reformer. He is a pragmatic modernizer, like Singapore's Lee Kwan Yew. His stance owes in part to external constraints: to this day, capitalism has not found a comfortable home in India. Many citizens believe that market-oriented reforms make the rich richer and the poor poorer. Despite the huge benefits of increased competition since 1991, many Indians cannot distinguish between being pro-market and pro-business. India has not had a leader like China's Deng Xiaoping or the United Kingdom's Margaret Thatcher, capable of selling the competitive market to the people. As a result, every Indian government has reformed by stealth, and Modi has been no different.
THE UNHAPPY CENTER
Over the next five weeks, 900 million voters will be eligible to vote and election fever will once again seize the country. Probably because Modi has failed to create jobs, the BJP's rhetoric has turned from economics to identity politics and security issues. When a Pakistan-based terrorist group killed some 40 Indian paramilitary troops in Kashmir on February 14, the government took the unprecedented step of retaliating with an air strike inside Pakistan, purportedly against a terrorist camp. The incident, and the subsequent battle of Indian and Pakistani jet fighter planes, burnished Modi's military credentials. The whole episode fits in well with his nationalist rhetoric, which brands as unpatriotic anyone who criticizes the government, especially on its military counterterrorism operations in Kashmir.
My own dreams for Modi have faded. Had he reformed vigorously and begun to deliver the promised jobs, I would have applauded him for giving India a shot at the demographic dividend. I might even have forgiven his distasteful ethno-nationalist politics. But Modi remains the most popular leader on the Indian political scene. It seems unlikely that the Congress Party under Rahul Gandhi, with its chaotic coalition of regional allies, will unite behind a positive vision and create an effective vehicle for reform. Instead, the country is polarized between those who love Modi and those who hate him. A middle-of-the-road person such as myself finds that he has no one to vote for. Many Indians are here with me, in the unhappy center.
Posted by gurcharan at 12:41 PM 9 comments:
A Hindu's Reflections on Desire and the Human Condition
the Globalist | December 25, 2018
"Our existence is but a brief crack of light between two eternities of darkness," wrote Vladimir Nabokov in the opening lines of his memoir, Speak Memory.
Nabokov believed that human beings are more afraid of the abyss after death and viewed the one before birth more calmly.
Whereas the fearful unknown of the dark voids drove my Hindu father to mystical religion, I was drawn to the bright side. There I found kama or "desire" in Sanskrit.
Unlike animals, human beings are not governed by instinct alone. Instinctual desire travels from our senses to our imagination, from where it creates a fantasy around a specific individual.
These fantasies become the source of intense "pleasure," and this happens to be the other meaning of kama. Ever fearful of too much devotion to erotic love, most societies are worried about this charming human inclination, and instituted monogamy via the institution of marriage.
This was done for the sake of social harmony. Fancying a neighbour's wife or husband can be an intoxicating temptation. Reaching for it can bring pain and tragedy, destroying families and peace.
Kama can be a desire for anything, but like the English word "desire," it refers generally to erotic desire.
A desire to act
Kama is also the desire to act. It drove Shakespeare to sit down one morning and write dazzling Othello, who turned out, alas, to be one of the unhappiest victims of kama.
Since my ancient Hindu ancestors realized that kama is the source of action, of creation and of procreation, they elevated it not only to a god, but also one of the goals of the human life. They thought of it as a cosmic force that animates all of life.
Kama's history is the struggle between kama optimists and pessimists. While kama optimists zero in on strategies from the Kamasutra for entering the "web of desire," as William Blake called it, kama pessimists are concerned about kama's darker, sinister side.
They dwell on how it creates, but also destroys. That it may inspire love alright, but this drive can become uncontrollable, obsessive and violent.
One can spend a lifetime to discover how to enjoy desire but not too much how to strike a civilized balance between over-indulgence and repression.
Wanting what you don't have
Plato wisely observed that desire is a lack of something that one does not possess. Lovers long to unite in order to fill this deficiency. But how can something that is missing, or perishes once attained, be a goal of life.
Kamagita, a "song of desire," embedded deep inside the Mahabharata, the ancient Indian epic, reminds us that when we control one desire, another pops up.
For example, in those who choose to give up desire for wealth and give away their money, a new craving emerges — a desire for reputation. Conversely, those who choose to renounce the world and become an ascetic are often driven by a desire for heaven or for moksha, "liberation" from the human condition.
More than 2,500 years ago in the forests of north India, some curious fellows, while conducting mental experiments, called the Upanishads were struck by the unsatisfactory nature of kama.
To them, finding an answer was very important, and it was also central to the Buddha's project. The ancient yogis sought ways to quiet this endless, futile striving, and their goal became chitta vriti nirodha, "to still the fluctuations in the mind," in the words of Patanjali.
Acting without desire
The answer of the Bhagavad Gita to this riddle of kama is to learn to act without desire. But how is this possible when, according to the earliest Upanishad, "man is desire"?
You are what your deep, driving desire is. As you desire is, so is your will As your will is, so is your deed. As your deed is, so is your destiny.
The Bhagavad Gita is aware that a person cannot stop desiring, nor does it want him to lose the will to act. It proposed the idea of "desireless action," which means to renounce the personal rewards of one's own actions – in short, act so that you don't care who gets the credit.
I have read this refrain dozens of times, but I remain sceptical that a person can give up his fundamental, egoistic desire and still remain human.
A lurking pessimism
In India, we tend to blame the Victorians for the prudishness of the Indian middle class. But we must acknowledge that, lurking deep in the Indian psyche, is deep pessimism about kama's prospects.
This is what led the great ascetic god, Shiva, to burn the god of love in frustration when the latter disturbed his thousand-year meditation. Hence, desire exists ananga, "bodiless," in the human mind.
During my Christian missionary school education here in India, I was taught to equate desire with "original sin." But the ganja smoking priest from our neighbourhood temple told me stories of playful, mischievous gods, who created the world for the fun of it.
And one of them, Krishna, danced with 40,000 women for an entire Brahma night that lasted 4.5 billion human years. From him I learned that our civilization is the only one that elevated kama to an aim of life and left behind a legacy of erotic Sanskrit love poetry, the Kamasutra and the erotic sculptures at Khajuraho.
Even the devotional love of god took a romantic turn in Gitagovinda, where Radha, a married woman, longs to unite with her divine, adulterous lover.
I am at an age when I mostly relive memories, some intimate, others wistful, and still others so distressing that I am left in a sweat.
Desiring to desire
Much like the next person, I desire to desire. The human rhythm is that we live for a while and then we die. It matters to us in ways that it does not to other creatures.
What is this mattering? We want our lives to have meaning. Well, kama too is a gesture in the direction of a meaningful life.
If nothing else, it is a compensatory move. After all, we are constantly reminded about dharma, "our duty to others." Repressed as we are, the thought escapes us that kama is also a duty—a "duty to ourselves."
Ultimately, kama is needed to realize our capacity for living a flourishing life.
Bold vision of Modi 2.0: Moving from 'garibi hatao...
Strong state, strong society: The reforms India ne...
A Hindu's Reflections on Desire and the Human Cond...


While Curiosity and her team found themselves entangled in a media furor over comments, assumptions, and rumors of findings that have yet to be found, Opportunity roved on in November, finishing up the geologic survey of Matijevic Hill and setting a new mileage record along the way.
Here at station 14 we have decided to do a detailed investigation of an outcrop that is well exposed and lies within an area where there is orbital remote-sensing evidence for clay minerals. These particular rocks are interesting in that they contain a lot of thin veins and alteration zones along joints (cracks) in the outcrops.
Emily Lakdawalla and Casey Dreier will both attend this year's AGU conference in San Francisco as representatives of the Planetary Society.