The mother of murdered Stephen Lawrence is supporting a fundraiser for a Wembley parenting charity.
Baroness Doreen Lawrence is a keynote speaker at the Brilliant Parents Mothers Day Awards in Bloomsbury on April 6 where she will talk about the challenges of motherhood in the 21st century.
Brilliant Parents, a social enterprise in Quad Road, has a mission to normalise parenting classes.
Its "Triple P" – Positive Parenting Program – has been commissioned by councils, schools and the NHS to deliver six- and nine-week courses to struggling families.
Meave says parenting classes should be as readily available as antenatal classes.
"We are a small organisation with a big agenda," she said.
Tickets are £60 for dinner and dance or £15 for the dance only. Doors open at 5.30pm at the Holiday Inn London Bloomsbury, Coram Street.


Serendipity is a registered charity and every donation is a tax deduction.
Serendipity Animal Sanctuary is one of the very few active, farm animals rescue centres in Queensland, Australia.
It is a home to over 142 animals and growing because they NEVER say no to an animal in need.
Serendipity provides farm animals with food, shelter, veterinary care, freedom, peace, love, and a much needed second chance.
Unfortunately, the property that was promised to Serendipity's Carers, as a long-term rental, is now being sold from underneath them.
They wish to secure the property by July 2018 but they require $30,000 to put a deposit on the property, after which they will fund the remainder themselves.
If Serendipity cannot secure the property, all resident animals will be displaced, and many happy and innocent sentient beings' lives, lost to factory farming and slaughterhouses.
YOU can help Serendipity and their life-changing, valuable work.Project Ahimsa meets Serendipty sanctuary!
We are beyond excited to announce our support through the Festival for the Serendipity Farm Animal Centre Inc, a sanctuary in Gympie, QLD.
The sanctury is at risk of closing down, as their long term tenancy has been revoked and the only option is for Serendipity to buy the land.
Raising funds to secure the land is vital for the safety of these beautiful animals as well as being able to do more rescues in the future.
So now you can be excited too!! You can be part of this great cause by simply buying a ticket as proceeds from The Ahimsa Festival will be donated to Serendipity! Huge thanks if you already purchased a ticket and for those interested in getting one and supporting Serendipity, here is your chance.
We are currently trying to crowdfund for a reputable, established, animal sanctuary, called Serendipity which is located in Gympie, Queensland.
They are at risk of being shut down, as their long term tenancy has been revoked.
The only option given is for Serendipity to buy the land.
Raising the funds for the long term care of all these animals and more rescues in the future, is imperative for the safety of these beautiful animals.
Our goal is to raise funds for Serendipity Animal Sanctuary, so that they can secure the land, and keep the home for over 142 sentient beings.
We need support from everyone who loves animals, to help provide them with a stable sanctuary. It would be greatly appreciated if your team could help this cause by promoting or covering this crowdfunded campaign to save Serendipity animal sanctuary.


text:
Complex crystal 'flowers' self-assemble with chemical manipulation
By Aaron Souppouris
Source Harvard School of Engineering and Applied Sciences and Paper (Science) | Via Laughing Squid and Motherboard
Crystal flowers
Researchers at the Harvard School of Engineering and Applied Sciences have grown microscopic fields of flower-like structures made of crystals. Project lead Wim L. Noorduin and his colleagues were able to modify the growth of the crystals through tiny chemical alterations of a fluid containing water, liquid glass, and the salt barium chloride. Carbon dioxide from the air dissolved into the solution, forming solid barium carbonate crystals. "This precipitation happens spontaneously," says Noorduin, but by controlling the amount of carbon dioxide that dissolves into the solution, the team was able to change the way the crystals formed. A high amount of carbon dioxide led to "broad, radiating leaves," while low carbon dioxide levels could create "a thin stem, or a rosette of petals."
The images above aren't a perfect representation of the crystals — they've been artificially colored to accentuate the complexity of the structures. In reality the images, which were shot through an electron microscope, are black and white. They're not quite as visually arresting, but the sheer scale of the field of fungi-like structures disappearing into the distance, pictured below, is breathtaking.
More from Science
Microsoft strikes 'strategic alliance' with solar manufacturer
ChatGPT can't be credited as an author, says world's largest academic publisher
Lauren Sánchez will lead an all-woman crew to space on Blue Origin

redpajama_set_name: RedPajamaCommonCrawl


Caplan offers private lessons in both koto and shamisen to students of all ages. She teaches from her studio in Toronto and her teaching style is a comfortable blend of Western and Japanese traditions. Lessons are one hour long. They can be geared towards a diploma path, if you're interested in certification, or just towards playing for enjoyment, if that's what you prefer. You don't need any prior knowledge of music and you also don't need to be able to read Japanese in order to study.
Students will need to have an instrument at home to practise on. If you don't have your own instrument, Caplan has a limited number of kotos and shamisens available for rent at a nominal monthly fee. She can also assist you in purchasing your own instrument, should you wish.
Internet lessons are available to students outside the Toronto/GTA area. (Rentals not available for internet lessons.) Students must have their own instrument and all necessary accessories, as well as a high-quality webcam and microphone. Internet lessons are taught via Skype, so you'll need to create a free Skype account.
Please send lesson inquiries to lessons@lindacaplan.com.
Any reproduction, distribution and/or personal/commercial usage in any form or media of any photographs, illustrations, images, text, audio clips, and video clips on this website is strictly prohibited. Your respect of this copyright is appreciated.


It is Robin Sena, the titular character of the awesome anime series Witch Hunter Robin for BESM. Sadly BESM is out of print and Guardians of Order out of business. I had hope that Arthaus would continue the game, but no chance. I liked BESM, it had a lot going for it. I should post something about BESM and GoO sometime. Until here is our twisted little firestarter.
Yeah. And I even toyed with the idea myself to be honest. But GoO could not keep it going full time so I dobt others would want to pisck it up.
Mal Havoc: I was waiting for this?
Old School Horde, part 2!
Toyriffic: Silly Geeks, Toys are for Kids!


text:
Strangers come together on Twitter to find dress for girl with autism
Thor is set to become the first Marvel Cinematic Universe hero to get 4 solo films
It wasn't all bad
Alastair Pike/AFP/Getty Images
Deborah Price turned to strangers on the internet for help, and they delivered.
Price's friend, Kate Bell, was trying to find a specific dress for her daughter, Elise. Elise has autism, and will only wear a gray dress with a rainbow heart on the front. It was purchased three years ago, and Kate wanted to find a new one before Elise outgrows her current dress. Thinking someone might have an old dress in their closet they would be willing to sell, Price tweeted a photo and hoped for the best.
It didn't take long before people started responding. Some told her they found the dress on eBay but in the wrong size, and others offered to sew a replica. Even the clothing company, Next Official, chimed in, saying while the dress was no longer being made, they would see what they could do. Finally, one girl said she owned the right size, and wanted to send it to Elise. Price was "absolutely bowled over by the kindness of strangers," she tweeted. She thanked everyone for their support, saying it "restores your faith in human nature." Catherine Garcia
that's what heroes do
Chris Hyde/Getty Images for Disney
Marvel is officially doubling down on Thor in its new, post-Endgame era.
A fourth Thor movie is in the works with Thor: Ragnarok's Taika Waititi set to return as director, The Hollywood Reporter wrote on Tuesday. This will be the first time any hero in the Marvel Cinematic Universe receives more than three solo movies, as Comicbook.com points out. Captain America and Iron Man previously only had trilogies dedicated to them, although their storylines continued in the crossover Avengers movies and other installments like Spider-Man: Homecoming. Avengers: Endgame was the first time the MCU released a third sequel.
The third Thor film, Ragnarok, totally reinvented the character after two installments that even star Chris Hemsworth hadn't been entirely happy with, and it was the highest-earning entry by far, grossing $853 million worldwide compared to its predecessor's $644 million. Now, Marvel is breaking from its usual trilogy pattern in order to strike while the iron's hot and continue telling stories with the new version of the hero. While Endgame wrapped up the storylines of original Marvel heroes like Tony Stark and Steve Rogers, it left Thor's decidedly open, although it wasn't clear at the time whether his plot line would continue in the third Guardians of the Galaxy film, a fourth Thor film, or both. The answer, it seems, may be both.
Hemsworth had previously expressed his desire to keep making Thor movies, telling Variety in an interview earlier this year that "we've opened up such a different character" and that "I feel more energized for the possibility of where it could go." It's unclear when this fourth Thor film might be released, but an official announcement may come at Marvel's upcoming San Diego Comic-Con panel, which will take place on July 20. Brendan Morrow


text:
LATELINE
Interview: David Kilcullen
Posted Thu 17 Sep 2015, 10:33pm
Updated Thu 17 Sep 2015, 10:33pm
Counterinsurgency expert David Kilcullen says that the Coalition is struggling to defeat Islamic State but that Russia may yet play a positive role in bringing peace to Syria.
TONY JONES, PRESENTER: Since the start of the conflict four and a half years ago, it's estimated more than four million Syrians have had to seek refuge outside Syria. Many have bypassed refugee camps and headed straight for Europe via Hungary. Overwhelmed by the tens of thousands of Syrians passing through their border, Hungarian authorities are now using tear gas and water cannon to force migrants back from the Serbian-Hungarian border.
Meanwhile, the battle on the ground in Syria is escalating as coalition forces continue air strikes in a bid to beat ISIS, but some, including the former Middle East - including the current Middle East correspondent Robert Fisk, say it is a losing battle.
ROBERT FISK, MIDDLE EAST CORR., THE INDEPENDENT: Basically, the ISIS are winning. They're winning against the Syrian Army. ... They've got their territory. In fact their latest broadsheet that they put out - and I get it as a journalist - is telling me about how good their hygiene is in Mosul where they've got rubbish collectors, which they haven't got in Beirut at the moment. So I think probably ISIS are not very worried about bombing. I don't think you can win a bombing war against a guerrilla army. The Americans should've learned that in Vietnam.
TONY JONES: Well as part of its efforts to beat ISIS, the United States undertook a $500 million program to build an American-trained Syrian rebel force. The plan was to equip more than 5,000 Syrian fighters by the end of the year. Well yesterday, the head of the US Central Command, General Lloyd Austin, made a startling admission in Washington to the Senate Armed Services Committee.
SENATE ARMED SERVICES COMMITTEE MEMBER: General Austin, can you tell us what the total number of trained fighters remains?
LLOYD AUSTIN, HEAD OF US CENTRAL COMMAND: It's a small number and, ah, um - the ones that are in the fight is - is - is - we're talking four - four or five.
TONY JONES: And yes, he was talking about four or five individuals. Well, David Kilcullen is a counter-insurgency expert and was the chief strategist in the US Department of State's Counterterrorism Bureau.
Thanks for being there.
DAVID KILCULLEN, COUNTER-INSURGENCY ANALYST: Hey, Tony.
TONY JONES: Now we just saw the US General Austin admit that a $500 million training program to build a large Syrian rebel force had produced four or five trained fighters, and I'm wondering, is this a kind of metaphor for the whole US-led operation in Syria?
DAVID KILCULLEN: Well it's actually worse than that because what happened was the program produced a couple of hundred fighters, who on their first foray into battle in northern Syria were attacked very strongly by the al-Qaeda ally Jabhat al-Nusra and more or less decimated. And even now, for a program that's supposed to be generating about 5,000 trained fighters a year, there's only about another hundred actually in training. So the chance that we're gonna get anything significant out of this kind of effort to prosecute the war with proxy forces, you know, with locally-trained Syrians any time soon I think is extraordinarily remote.
TONY JONES: It's not exactly the Bay of Pigs, is it? How did they manage to stuff up so badly?
DAVID KILCULLEN: Well they started late, they did it too little and I think by the time that the US-trained organisations hit the ground, there were already a number of really important players on the rebel side who had sucked away a lot of the talent and a lot of the effort. I would just say though that there is another separate US effort that is doing actually very well in Syria which is associated with a group of 49 rebel factions that are all fighting in the south of Syria and are actually doing quite well. So what we've seen here is over the summer ISIS has expanded its territory under its control at the expense of the Syrian regime. So despite what the advisor said earlier, right now, Bashar al-Assad's regime only controls about 22 per cent of Syrian territory and most of those losses happened over the summer to ISIS. So we're seeing sort of a combination of different rebel groups gaining ground at the expense of the regime and the expense of each other. And it's really just the case that the US Central Command rebels joined that fight too late and at too small of a scale to really survive in what is now a - basically a guerrilla marketplace on the ground.
TONY JONES: David, before we go into the detail of what's actually happening on the ground and the Russian - new Russian involvement in that or the expansion, what did you make of the parallel story about the investigation by the Pentagon's Inspector General into claims that senior US military officers manipulated the conclusions of intelligence about the war against ISIS and passed on false information, effectively, to the White House?
DAVID KILCULLEN: Yeah, so this is a big scandal in the States right now, and as I think your viewers are aware, about 50 analysts in the intelligence centre at Central Command put forward a complaint to the Inspector General that alleged that their reporting was being politically manipulated. And also there's been some reporting from The Guardian suggesting that the head of intelligence at Central Command, General Grove, has been, I would argue, influenced or bullied by the National Director of intelligence, James Clapper. Now, I was involved in a couple of similar controversies in the past and I think viewers can remember that there were similar discussions around Afghanistan in 2008-2009 and around Iraq in 2003 and I think it's a pretty perennial issue that analysts feel as if higher-ups are not taking into account the nuances of their analysis or perhaps skewing and putting a more rosy picture onto what they report. I don't know the specifics of, you know, whether specific material was manipulated. The only thing I can say is that based on my own sources, which are all open source, certainly what you hear from Central Command bears almost as little relationship with reality as what you just heard from the Syrian Government's advisor. It is significantly more positive than what ordinary Syrians report on the ground. So I think there is at least a case to answer that the reporting has been skewed. Whether that's as a result of political manipulation or just, you know, factors in the production of intelligence and the process, that's a different question.
TONY JONES: David, that's obviously extremely worrying. Equally worrying, it seems to me, is that we're seeing this rapid Russian military buildup in Syria. So should the US and its allies be bracing themselves for a full-scale Russian intervention into the conflict and what would be the implications of that if it were to happen?
DAVID KILCULLEN: Well I think it's already happened. So, again, to just inject a little fact into what was said by your previous interviewer - interviewee, actually, in addition to building a base in Latakia and bringing ships and equipment into the Tartus naval base, the Russians have landed several hundred naval infantry who come from the same - so sort of like marines - who came from the same organisations that were involved in the seizure of the Crimea last April. So Russian troops are on the ground. They are engaged. Russian advisors have been there for several years, but now we're seeing combat troops and there is at least the potential that both air and ground assets will be engaged in direct combat. And a lot of Syrian and Lebanese sources are reporting in the last few days that they've actually seen that already occurring. Now whether that's true or not, we don't know yet. But definitely the move is one that is a much more direct engagement in the conflict than we've seen in the past. Where I differ a little bit ...
TONY JONES: So David, what's the implications for that? I mean, we see that John Kerry is trying to get together with his counterpart in Russia and they've got military-to-military talks now because clearly they're worried about conflicts between US and the coalition forces and Russian forces.
DAVID KILCULLEN: Well, I'm not sure that I share the sort of general freak-out that's happening here in Washington about Russian engagement. In a way, I think it's inevitable that allies of Bashar al-Assad, not just the Russians of course, but also the Iranians, are gonna step forward to rescue their boy when he gets into the kind of difficulties that he's got into over the summer, and as we said, he's lost a lot of ground. But also what this does is it brings the Russians into the potential to have a much more constructive engagement in finding a peace settlement in Syria. So the flipside of the Russian military engagement is that President Putin has also asked for a one-on-one meeting with President Obama. He's planning to address the UN General Assembly on 28th September. That's the first time in a decade that he's actually come to that meeting. And he's going - the word is he's going to propose a joint peace settlement involving Russia, Iran and the United States. And to be honest, I think this is actually the best chance that we've had for several years of getting towards a negotiated peaceful settlement in Syria. Nobody believes that there's a military solution to the problem on the ground. And so for a long time, people have been trying to get past this issue that you raised of what happens to Assad and what's the way forward? And I think the Russian engagement here is at least them recognising that they need to take more robust steps to push forward to that kind of political solution. And I would hope that the negative rhetoric that we're seeing right now from Washington and elsewhere is replaced in the next few weeks by a willingness to re-engage on the diplomatic front.
TONY JONES: So David, a final question then. Does that mean that the West, the United States in particular, perhaps Australia as well and other coalition allies, will literally have to hold their noses and effectively find themselves supporting keeping Assad in power?
DAVID KILCULLEN: I want to answer that by quoting something that I hear quite frequently now from Syrian peace activists. And we wouldn't have heard this really at any time until about the last six months, but it's something that you increasingly hear now. People are saying, "Look, Assad himself, his family and some of his cronies need to go, but the regime needs to stay, because without the regime as part of some kind of a future provisional or transitional government, there is gonna be a power vacuum that simply results in ISIS filling that vacuum and taking over the country." So I think the way to square that circle is to say we need to start making a distinction between Assad himself and the people around him versus the Syrian state and the Syrian government structure. Now obviously there are all sorts of human rights issues and concerns associated with the performance of the Syrian Government, but it's different from Assad as an individual. And I think that may be part of what you start to see in the next couple of weeks in the discussions in New York, where people start to make that distinction between Assad the man and the Syrian Government and think about whether there is in fact a better way to produce a provisional or a transitional agreement.
TONY JONES: OK, thank you very much, David Kilcullen. We'll have to leave you there. We're out of time. It of course does raise the big question as to if you support the regime, you are supporting the people who did all those killings as well at the same time. Anyway, thanks for joining us.
DAVID KILCULLEN: Yeah, and I would just say I don't support the regime, but I think that's where we're all going at this point.
TONY JONES: Yeah.
Author Tony Jones
link Episodes
ABCLateline
@Lateline
Watch Lateline 9:30PM Weeknights (AEDT) on ABC NEWS, 10:30PM Weeknights on ABC


text:
CDC Report: State Laws Mandating Hepatitis C Screening Are Effective
Eric Roberson (right) and Joseph Gathe, MD Robert Seale
State laws that mandate health care providers to offer hepatitis C virus (HCV) testing can help significantly increase screening rates and linkage to care among those newly diagnosed with the liver virus, according to new research published in the Centers for Disease Control and Prevention's Morbidity and Mortality Weekly Report.
The report, which was recently summarized by reporters at Medical Xpress, used New York state as a case study for testing mandates, noting that in 2014, New York legislators enacted a law requiring that health care providers offer HCV antibody screening to all their patients born between 1945 and 1965, currently one of the most at-risk groups in the country for an undiagnosed infection.
Researchers then looked at survey data from clinical laboratories, state Medicaid claims and patient encounter data as well as New York's hepatitis C surveillance statistics over several years to see whether the new law had any effect on the rate of testing and linkage to care for the virus.
The researchers ended up observing a 51 percent increase in blood specimens submitted for HCV testing during the first year of the law's implementation. Among Medicaid users, screening rates went up by 52 percent. The study also noted that linkage to care among people with newly diagnosed hepatitis C went up by approximately 40 percent in the state of New York and 11 percent in New York City — a significant increase for all tested parameters.
Study authors concluded that New York's results verify how state laws and legislation around hepatitis C screening can help with efforts to link people to treatment and, eventually, end the HCV epidemic. Researchers also noted the importance of keeping accurate HCV surveillance data and Medicaid claims in order to monitor the quality of testing and linkage to care strategies across the country.
#Centers for Disease Control and Prevention
#hepatitis C testing
#Morbidity and Mortality Weekly Report
Over 25% of Women With Hep C Were Diagnosed During Pregnancy
Hep C Is Highly Prevalent Among People Who Inject Drugs
State Policies Create Barriers to Hepatitis C Elimination


text:
Veterans Choice Program Phone Scam Preys on Veterans
Veterans are being duped in a new phone scam that tries to mimic the legitimate Veterans Choice Program. Learn about the inner workings of this scam to avoid becoming a victim.
By Alicia Doyle
Image: iStockphoto/Craig McCausland
U.S. Military Veterans who are making decisions about their medical care are the target of a new telephone scam that involves the Veterans Choice Program help line.
The scammers are depending on veterans to misdial the number to the Veterans Choice Program. Once they misdial, they are told they're entitled to a rebate if they provide a credit card number. But in the end, there is no rebate.
This article explores how the Veterans Choice Program phone scam works, how to detect it, and what veterans can do if they become a victim.
We've gathered input from organizations that are publicizing warnings about this scam, including the Federal Trade Commission, U.S. Department of Veterans Affairs and Veterans Health Administration.
Let's begin by discussing the legitimate Veterans Choice Program.
What Is Veterans Choice Program?
The Veterans Choice Program is an initiative of the U.S. Department of Veterans Affairs that allows certain eligible veterans to use approved health care providers who are outside of the VA system, according to Carol Kando-Pineda, an attorney with the Federal Trade Commission's Division of Consumer & Business Education.
The program provides primary care, inpatient and outpatient specialty care, and mental health care when the local Department of Veterans Affairs health care facility cannot provide the services due to:
Lack of available specialists.
Long wait times.
Extraordinary distance from the Veteran's home.
"The program provides community health care if you are already enrolled in VA health care," explained JC Oberst, a Navy veteran and executive director of the Gold Coast Veterans Foundation.
The Veterans Choice Program allows you to receive health care from a participating provider if the VA health care appointment is not available within 30 days, or if the VA healthcare is over 40 miles from your residence, Oberst said.
"If you see your VA primary care physician and a referral appointment is scheduled with a VA facility that cannot see you within 30 days or is over 40 miles away from your residence, then you can request to use the Veterans Choice Program," Oberst noted. "At this point, the Veterans Choice Program will call you to schedule an appointment with a participating provider."
Now that we've discussed the legitimate Veterans Choice Program, let's talk about the scam associated with this program in which criminals attempt to steal money from veterans over the phone.
How Does Veterans Choice Program Phone Scam Work?
Veterans or families can call the Veterans Choice Program's toll-free number to verify their eligibility for the program.
"Here's the problem: Scammers have set up a phony telephone line that very closely resembles the Veterans Choice Program's real telephone number," Kando-Pineda stated in a blog published by the Federal Trade Commission on May 15.
"Con artists often use names, seals, and logos that look or sound like those of respected, legitimate organizations," Kando-Pineda noted. "This time they're using a phone number that's almost identical to the real thing, counting on creating confusion."
Since the inception of the Veterans Choice Program in November of 2014, more than 1.5 million Veterans have tapped into it, according to Tom Grahek, program manager of the Veterans Health Administration Office of Community Care.
When the Veterans Choice Program phone line became compromised with this scam, the VA notified the Federal Bureau of Investigation, Consumer Financial Protection Bureau, Federal Trade Commission and the Office of Inspector General, Grahek said.
The real number for the Veterans Choice Program is 866-606-8198. With this phone scam, criminals are depending on the Veteran to misdial the area code before the phone number, said Detective Timothy Lohman, who solves forgery, fraud and financial crimes in Southern California.
"Back in the day, the toll-free number was 1-800, but in this case, the toll-free number is 1-866," Detective Lohman said. "The scammer's intention is to get veterans who will misdial, so instead of dialing 1-866, they're dialing 1-800."
When a veteran misdials, they think they've reached the Veterans Choice Program.
"The fake line's message says you're entitled to a rebate if you provide a credit card number," Kando-Pineda stated. "But if you give up your account information, they'll debit your account and you'll get nothing in return. There is no rebate and you'll need to cancel your credit card."
This potential attempt to impersonate the Veterans Choice Program phone line is being taken very seriously, according to a blog published by the U.S. Department of Veterans Affairs.
"VA is acting to ensure veterans are not exploited by getting the word out and also by working with the Office of Inspector General to take legal action and ultimately shut the fake line down," the blog states.
Now that we've addressed the legitimate phone number associated with the Veterans Choice Program, the next section offers more details of what occurs when a veteran mistakenly calls the fake phone line.
How Can You Tell That You Reached a Fake Phone Line?
According to the U.S. Department of Veterans Affairs, the fake phone line does not provide information on the Veterans Choice Program or its eligibility criteria – instead it claims to offer callers a $100 rebate if they provide a credit card number.
The VA "would never ask veterans for this information or offer this type of financial incentive through the Choice Program phone line," the department states.
Veterans can tell if they have reached the correct phone line if the phone line automatically states the caller has reached the U.S. Department of Veterans Affairs.
You know you have reached the wrong phone line when:
The phone line offers callers a $100 rebate if the caller provides a credit card.
The phone line does not state the caller has reached U.S. Department of Veterans Affairs or the Veterans Choice Program phone line.
"The fake line will incorrectly confirm callers have reached the Veterans Choice Program if the caller asks this question," noted the U.S. Department of Veterans Affairs. "If veterans are unsure if they have reached the correct phone line, they should hang up and make sure they dial 1-866-606-8198 correctly."
The next section describes the first-hand experience of a military wife who called the fake phone line. Her goal was to educate herself so she could warn veterans about this scam.
Military Wife Experiences the Veterans Choice Program Phone Scam
Kim Evans, founder and executive director of the Ventura County Military Collaborative, called the phony Veterans Choice Program phone number to witness the workings of this scam herself.
She called the mimic call center on May 9 from an unlisted phone number.
"It sounds like the mimic line reaches a call center and the agent that I spoke with had a heavy accent, and from discussions in the call center it sounds like they may not operate in the U.S.," Evans said.
When she was told about the $100 gift card, she asked how a gift card would assist her with veteran benefits.
"I was told that I could use the gift card to buy groceries," Evans recalled. "I repeatedly asked if this was the Veterans Choice Program and was told 'yes' on multiple occasions. I was never told that they were not affiliated with veterans or veteran benefits. Nor was I told that they are the VA."
For veterans who fall victim to this scam, Evans recommends immediately contacting their credit card company to make sure no other charges were billed.
"The VA doesn't ask you for your credit card to send you gift cards," Evans said. "As far as I know they would never ask for your credit card number over the phone and they certainly aren't in the business of sending out free, or otherwise, gift cards."
As the wife of a Persian Gulf and Iraq war veteran who retired after 26 years of service, Evans said the Veterans Choice Program phone scam is bad on two fronts:
"A veteran calling is more than likely in need of medical assistance and services, so to pretend that you are representing the VA Choice Program is just horrible," Evans said. "They definitely want your credit card number – I can't imagine that's a good thing. To pray on those who have served this nation is beyond disgusting."
Evans added that even though she called the phony line from an unlisted phone number, "they were able to pull it up. I imagine that my phone number will be used in the future for additional solicitations."
Veterans Choice Program Phone Scam – A Recap
The following points are indicators of the telephone scam associated with the Veterans Choice Program:
The mimic line offers callers a $100 rebate if the caller provides a credit card.
The mimic line does not state callers have reached the U.S. Department of Veterans Affairs or the Veterans Choice Line.
Callers have reported that the mimic line incorrectly confirms callers had reached the Veterans Choice Program – if that caller asks that question.
Officials have identified 1-800-606-8198 as the fake number. Do not answer calls from this number.
The correct number for the Veterans Choice Line is 1-866-606-8198.
The VA Identity Safety Service offers a toll-free identity theft help line to veterans and their beneficiaries who believe that they are at risk. The number is 1-855-578-5492, and it operates Monday through Friday, from 8 a.m. to 8 p.m. EST, with voicemail for after-hours calls.
Remember, the VA does not ask for credit card information.
"If you believe you've been a victim and have provided your credit card information, call your local police agency and file a report, or report it to the Department of Veterans Affairs," Detective Lohman advised.
"We're just trying to warn veterans now so they don't fall victim," he added. "Our efforts are proactive. We're trying to advise the public so veterans can avoid this scam."
Was this article helpful? Read more stories we've written about scams and ways to avoid them:
Latest Robocall Phone Scam Uses Popular Question: Can You Hear Me?
2017 Work-From-Home Job Scams and How to Spot Them
Tech Support Scams: They're Convincing, But Here's How You Can Avoid Them
Identity Theft Protection,
Alicia Doyle
An award-winning journalist, Alicia Doyle has covered a range of topics, from crime to sports to special education. With an affinity for human interest stories, she has written thousands of articles about inspirational people, events and organizations that have a positive impact on the community and world at large.
Natural Disaster Scams: How They Work and Ways to Avoid Them
Why So Many Elderly Americans Fall for Financial Scams
Excitement Around Solar Eclipse Makes Way for New Scams
Kidnap and Ransom Phone Scam: How It Works and Ways to Avoid It


text:
The Jeenyus Corner
By Nicholas Riccardi
DENVER — Tightening the secrecy over the year Colorado shooting suspect James Holmes spent studying neuroscience, a judge has barred the University of Colorado Denver from releasing any records about the former graduate student's time there.
What happened to the 24-year-old during his time in the program at the school's Anschutz Medical Campus is one of the many mysteries stemming from last Friday's mass shooting at a theater in which he's accused of killing 12 people and injuring 58 others at a midnight showing of "The Dark Knight Rises."
Neighbors and friends in San Diego, where Holmes grew up, described him as brilliant and sometimes awkward but never displaying signs of violence. He entered the prestigious Colorado program in June 2011, but a year later he dropped out after taking a year-end oral exam.
Numerous media organizations, including The Associated Press, filed open records requests for…
Pingback: In aftermath of Aurora mass shootings, secrecy reigns… « The Art of Access


text:
@import Mantle;

@interface MMData : MTLModel

/**
* The name associated with this data object.
*/
@property(nonatomic, copy) NSString *name;

/**
* The file name associated with this data object.
*/
@property(nonatomic, copy) NSString *fileName;

/**
 * The mime type associated with this data object.
 */
@property(nonatomic, copy) NSString *mimeType;

/**
 * The actual binary data.
 */
@property(nonatomic, strong) NSData *binaryData;

@end

redpajama_set_name: RedPajamaGithub


Our Solid Brass Doorbells are made of recycled brass and are crafted using the sand casting technique. They are then hand finished and coated with a protective lacquer to withstand the elements. Our Solid Brass Doorbells are offered in Oil Rubbed Bronze, Antique Brass, Pewter and Black finishes. They come with a lighted push button, mounting screws and installation instructions. Waterwood doorbells are easy to install and will add personality to your home.


text:
Getting Personal with Valentine Guinness
Public Description caught up with the multi talented playwright and singer Valentine Guinness shortly after the stage reading of his upcoming new play 'Christine' at The Tristan Bates Theatre, directed by Nickolas Grace.
Read on to learn about Valentines' latest projects and what has been keeping him so busy:
How did you first get started into becoming a playwright?
I was always interested in drama when I was at school. I did a lot of acting in those days. I kind of had a choice, when I was at college, whether to go down the drama line or carry on with my singing and song writing. Somehow it felt that it was almost too much to do both at the same time.
While I was at Uni, I had a band and we actually got a record deal, and it was all looking very very good so I thought that was going to be my future. I did that for a while, but then the band I was in broke up as they often do. After a while everyone starts arguing, ha-ha, so I thought well, what am I going to do. So I had always wanted to try my hand at writing drama so I just sat down and I said to myself I am not going to do what I did with the music which is try to please people. I am not going to sit down and try and write a play that is just going to please the critics. I'm saying to myself if I went to the theatre, would I enjoy this. Would I feel I had spent my money wisely on this? So I wrote Helping Harry it was a few years back now in 2001.
I believe Nickolas Grace was involved with Helping Harry?
In those days, I lived in Bayswater and I knew he was a neighbour of mine, I had got to know him and I was always a great fan of Nickolas Grace from his old days in Robin Hood and Brideshead Revisited. I was a bit star struck actually. So I used to bump into him in the newsagents and we got chatting, and knew that alongside his acting, he also taught at Drama College. So I thought the first person who I am going to get to read this play is NG as I am sure he will give me an honest opinion and he was really nice about it. So we started work on it, we sat on many occasions going through it, and he helped me a lot change it and cut it. Then we did a rehearsed reading at The Tristan Bates Theatre, and Harold Pinter (the playwright) came to see it. A bit scary and he wrote me a letter to say how much he really enjoyed it. So all really happy with that, so then NG and I went ahead and produced it. We put it on for a month at the Jermyn Theatre. We got amazing reviews for the entire month.
Unfortunately we couldn't extend it, because in those sorts of theatres, you have taken your month and someone is coming in immediately after. So NG and I tried to transfer it to a bigger theatre in the west end, but that is a very difficult thing to do. Ass what you now have to do to transfer something into the west end, is you have to get a major film or TV star in it, especially if you are an unknown writer. So it is a difficult one as the theatre owners and the producers will say we can't sell this unless we have a household name in it. It's annoying.
So this play Christine has been knocking around in my head for some time, and so last year I said to myself I really want to knock this together so I got together with NG again.
Christine is based on these four characters that have run away from their life, and find each other; not really a refuge but it is still a very claustrophobic existence. I based it a little, on my summer holidays that I used to spend in North East Spain region. It was sort of the end of the line and one of those places that all these wandering people turn up to and never leave.
What else has been keeping you busy?
Well, I wrote the screen play of George Orwell's novel, Burmese Days which I got the permission from the estate to do. So I have spent a lot of time on that. It is still yet to be made but my screen play is out there if anyone wants to make it.
Then there is of course the band I am in with Loyd Grossman. The New Forbidden. I have been very busy with the band, so the play writing has at times gone on the back burner.
Another thing I am in the middle of doing is, I am working with Julian Fellows (Downton Abbey) on a television series which we are trying now to get commissioned by one of the broadcasters, and it is called Love Lessons. It is based on my aunt Joan Wyndham. My aunty was a 19yr old during the 2nd WW living in Central London and she wrote these fantastically funny diaries of what it was like being that age, just between a teenager and a woman, and growing up when the war started, and the bombs started falling and everyone was being taken off to war. But the stories are warm and funny. Its light comedy but all true.
She had a journal under her bed, and lived with her mum just off of Fulham road. One of her comments from her journals was 'I wonder if I am going to lose my virginity first or get killed by a bomb'.
She hanged out with painters, and sculptors, and disreputable people, bohemian, and they all tried to seduce her one by one. It's a very funny but heart-warming story.
Joan, rebelled against her strict catholic upbringing and led this fun bohemian lifestyle
She died in 2007, but I had already started working on it with her. I used to sit in her kitchen, and talk through her journals which I knew better than she did as she hadn't read them in quite a long time.
I approached Julian Fellows as I felt he was just the person to do this justice, and I gave him the book which he took with him on holiday and Julian told me he laughed out loud the whole time he was reading it. So that's a good sign.
I am also releasing a solo album this year, if there wasn't enough to do. The album has been done with this fantastic producer Geoffrey Haslam who also worked with us on the band. The style with be much more introverted, slower, romantic and more acoustic which we would never do in the band. So I got together with Geoff and we put nine of mine and 2 other tracks and recorded them. A few of the tracks are from my old bands which I thought were too good to leave behind. Geoff has been fantastic and he has produced it so beautifully.
So the track we are putting out as it were is called 'Good Morning London'. Next month we are going to do a video of it and You Tube it. It's a happy summer song and we are going to try and make an interesting video to go with it ha-ha.
I'm also working on a sitcom. It's in the early stages. Basically based on me ha-ha. What I have done over the past years is I have collected every strange incident that has happened to me and there has been a few and I have written these down. I thought the character in the show his son would be in a terrible bad. So we have written a pilot of that. I think it might work.
So there's a lot bubbling around.
So tell me more about The New Forbidden?
Well we were very lucky as we have been invited to play back at Glastonbury for the 4th time this year. We have such a great time there. We started off with very low expectations.
How would you describe the music genre?
We are not a punk band. It's fast guitar rock, with catchy tunes. Our influence is Lou Reed, even The Killers. I have two daughters and at first they were worried dad would embarrass them, but they started listening to our music and playing our stuff to their friends so they then had to admit it was alright ha-ha.
Describe your musical influence?
I grew up listening to The Doors, the Velvet underground, Lou Reed and Iggy Pop. Then in the 80's when I was in my 20's I guess I was really into The Smiths. I thought their song writing was excellent. But now I am really into The Killers.
Where was your first live gig with The New Forbidden?
We did quite a few warm up acts before our big one in Blackpool. So our first live gig together as a band was on Friday 13th June called, so I will never forget the date, at The 12 bar club in Denmark Street. It was absolutely packed, but it's not very difficult to pack The 12 bar club ha-ha.
When producing music, where do you get your inspiration?
I have stacks of lyric ideas which I will either scribble down, and then I will then just pick up the guitar and leaf through the sheet of lyrics and try one of them to a guitar sequence. Sometimes you go down a dead end, and an hour later, you say to yourself, 'no, I'll try again tomorrow' ha-ha, but sometimes suddenly there's the chorus and the title. I usually start with the title and work backwards.
You have so much going on, how do you prioritise all of this?
I have always run my life as if I was at school and you had to write an essay, and you always do it at the last minute ha-ha. It's probably not such a good idea to think about it all of the time. Just concentrate on one thing a day.
Yourself and the band are crazily busy but do you think there might be an opportunity for an interview and for you to perform live at the Phoenix FM studios in Brentwood?
Definitely. Loyd and I could definitely come down. An interview definitely.
Thank you for kindly sitting for this interview and we wish you much success with all your projects.
The New Forbidden
Posted in InterviewsTagged brideshead revisited, Christine, Harold Pinter, Iggy Pop, Julian Fellows, Lou Reed, loyd grossman, Nikolas Grace, playwright, public description, the new forbidden, The Tristan Bates Theatre, Tristan Bates Theatre, valentine guinness
Previous TRACEY EMIN'S MY BED ON THE MARKET
Next GILBERT & GEORGE: SCAPEGOATING PICTURES for London


I've been collecting precious moments for two decades... No chips cracks or repairs all in excellent condition some may need a gentle cleaning. Here's just a few pictures of what I'll be picking from in your mystery box. All sales final on these mystery Lots. The item "Precious Moments lot of 25 variety" is in sale since Saturday, July 28, 2018. This item is in the category "Collectibles\Decorative Collectibles\Decorative Collectible Brands\Precious Moments\Figurines\Other Precious Moments Figures". The seller is "kaca_479" and is located in Pinson, Alabama. This item can be shipped to United States.


text:
package org.elasticsearch.repositories;

import org.elasticsearch.action.ActionListener;
import org.elasticsearch.cluster.AckedClusterStateUpdateTask;
import org.elasticsearch.cluster.ClusterChangedEvent;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateListener;
import org.elasticsearch.cluster.ack.ClusterStateUpdateRequest;
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
import org.elasticsearch.cluster.metadata.MetaData;
import org.elasticsearch.cluster.metadata.RepositoriesMetaData;
import org.elasticsearch.cluster.metadata.RepositoryMetaData;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.Injector;
import org.elasticsearch.common.inject.ModulesBuilder;
import org.elasticsearch.common.regex.Regex;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.snapshots.IndexShardRepository;
import org.elasticsearch.snapshots.RestoreService;
import org.elasticsearch.snapshots.SnapshotsService;
import org.elasticsearch.transport.TransportService;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import static java.util.Collections.emptyMap;
import static java.util.Collections.unmodifiableMap;
import static org.elasticsearch.common.settings.Settings.Builder.EMPTY_SETTINGS;

/**
 * Service responsible for maintaining and providing access to snapshot repositories on nodes.
 */
public class RepositoriesService extends AbstractComponent implements ClusterStateListener {

    private final RepositoryTypesRegistry typesRegistry;

    private final Injector injector;

    private final ClusterService clusterService;

    private final VerifyNodeRepositoryAction verifyAction;

    private volatile Map<String, RepositoryHolder> repositories = emptyMap();

    @Inject
    public RepositoriesService(Settings settings, ClusterService clusterService, TransportService transportService, RepositoryTypesRegistry typesRegistry, Injector injector) {
        super(settings);
        this.typesRegistry = typesRegistry;
        this.injector = injector;
        this.clusterService = clusterService;
        // Doesn't make sense to maintain repositories on non-master and non-data nodes
        // Nothing happens there anyway
        if (DiscoveryNode.dataNode(settings) || DiscoveryNode.masterNode(settings)) {
            clusterService.add(this);
        }
        this.verifyAction = new VerifyNodeRepositoryAction(settings, transportService, clusterService, this);
    }

    /**
     * Registers new repository in the cluster
     *

     * This method can be only called on the master node. It tries to create a new repository on the master
     * and if it was successful it adds new repository to cluster metadata.
     *
     * @param request  register repository request
     * @param listener register repository listener
     */
    public void registerRepository(final RegisterRepositoryRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
        final RepositoryMetaData newRepositoryMetaData = new RepositoryMetaData(request.name, request.type, request.settings);

        final ActionListener<ClusterStateUpdateResponse> registrationListener;
        if (request.verify) {
            registrationListener = new VerifyingRegisterRepositoryListener(request.name, listener);
        } else {
            registrationListener = listener;
        }

        clusterService.submitStateUpdateTask(request.cause, new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(request, registrationListener) {
            @Override
            protected ClusterStateUpdateResponse newResponse(boolean acknowledged) {
                return new ClusterStateUpdateResponse(acknowledged);
            }

            @Override
            public ClusterState execute(ClusterState currentState) throws IOException {
                ensureRepositoryNotInUse(currentState, request.name);
                // Trying to create the new repository on master to make sure it works
                if (!registerRepository(newRepositoryMetaData)) {
                    // The new repository has the same settings as the old one - ignore
                    return currentState;
                }
                MetaData metaData = currentState.metaData();
                MetaData.Builder mdBuilder = MetaData.builder(currentState.metaData());
                RepositoriesMetaData repositories = metaData.custom(RepositoriesMetaData.TYPE);
                if (repositories == null) {
                    logger.info("put repository [{}]", request.name);
                    repositories = new RepositoriesMetaData(new RepositoryMetaData(request.name, request.type, request.settings));
                } else {
                    boolean found = false;
                    List<RepositoryMetaData> repositoriesMetaData = new ArrayList<>(repositories.repositories().size() + 1);

                    for (RepositoryMetaData repositoryMetaData : repositories.repositories()) {
                        if (repositoryMetaData.name().equals(newRepositoryMetaData.name())) {
                            found = true;
                            repositoriesMetaData.add(newRepositoryMetaData);
                        } else {
                            repositoriesMetaData.add(repositoryMetaData);
                        }
                    }
                    if (!found) {
                        logger.info("put repository [{}]", request.name);
                        repositoriesMetaData.add(new RepositoryMetaData(request.name, request.type, request.settings));
                    } else {
                        logger.info("update repository [{}]", request.name);
                    }
                    repositories = new RepositoriesMetaData(repositoriesMetaData.toArray(new RepositoryMetaData[repositoriesMetaData.size()]));
                }
                mdBuilder.putCustom(RepositoriesMetaData.TYPE, repositories);
                return ClusterState.builder(currentState).metaData(mdBuilder).build();
            }

            @Override
            public void onFailure(String source, Throwable t) {
                logger.warn("failed to create repository [{}]", t, request.name);
                super.onFailure(source, t);
            }

            @Override
            public boolean mustAck(DiscoveryNode discoveryNode) {
                return discoveryNode.masterNode();
            }
        });
    }
    /**
     * Unregisters repository in the cluster
     *

     * This method can be only called on the master node. It removes repository information from cluster metadata.
     *
     * @param request  unregister repository request
     * @param listener unregister repository listener
     */
    public void unregisterRepository(final UnregisterRepositoryRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
        clusterService.submitStateUpdateTask(request.cause, new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(request, listener) {
            @Override
            protected ClusterStateUpdateResponse newResponse(boolean acknowledged) {
                return new ClusterStateUpdateResponse(acknowledged);
            }

            @Override
            public ClusterState execute(ClusterState currentState) {
                ensureRepositoryNotInUse(currentState, request.name);
                MetaData metaData = currentState.metaData();
                MetaData.Builder mdBuilder = MetaData.builder(currentState.metaData());
                RepositoriesMetaData repositories = metaData.custom(RepositoriesMetaData.TYPE);
                if (repositories != null && repositories.repositories().size() > 0) {
                    List<RepositoryMetaData> repositoriesMetaData = new ArrayList<>(repositories.repositories().size());
                    boolean changed = false;
                    for (RepositoryMetaData repositoryMetaData : repositories.repositories()) {
                        if (Regex.simpleMatch(request.name, repositoryMetaData.name())) {
                            logger.info("delete repository [{}]", repositoryMetaData.name());
                            changed = true;
                        } else {
                            repositoriesMetaData.add(repositoryMetaData);
                        }
                    }
                    if (changed) {
                        repositories = new RepositoriesMetaData(repositoriesMetaData.toArray(new RepositoryMetaData[repositoriesMetaData.size()]));
                        mdBuilder.putCustom(RepositoriesMetaData.TYPE, repositories);
                        return ClusterState.builder(currentState).metaData(mdBuilder).build();
                    }
                }
                if (Regex.isMatchAllPattern(request.name)) { // we use a wildcard so we don't barf if it's not present.
                    return currentState;
                }
                throw new RepositoryMissingException(request.name);
            }

            @Override
            public boolean mustAck(DiscoveryNode discoveryNode) {
                // Since operation occurs only on masters, it's enough that only master-eligible nodes acked
                return discoveryNode.masterNode();
            }
        });
    }

    public void verifyRepository(final String repositoryName, final ActionListener<VerifyResponse> listener) {
        final Repository repository = repository(repositoryName);
        try {
            final String verificationToken = repository.startVerification();
            if (verificationToken != null) {
                try {
                    verifyAction.verify(repositoryName, verificationToken, new ActionListener<VerifyResponse>() {
                        @Override
                        public void onResponse(VerifyResponse verifyResponse) {
                            try {
                                repository.endVerification(verificationToken);
                            } catch (Throwable t) {
                                logger.warn("[{}] failed to finish repository verification", t, repositoryName);
                                listener.onFailure(t);
                                return;
                            }
                            listener.onResponse(verifyResponse);
                        }

                        @Override
                        public void onFailure(Throwable e) {
                            listener.onFailure(e);
                        }
                    });
                } catch (Throwable t) {
                    try {
                        repository.endVerification(verificationToken);
                    } catch (Throwable t1) {
                        logger.warn("[{}] failed to finish repository verification", t1, repositoryName);
                    }
                    listener.onFailure(t);
                }
            } else {
                listener.onResponse(new VerifyResponse(new DiscoveryNode[0], new VerificationFailure[0]));
            }
        } catch (Throwable t) {
            listener.onFailure(t);
        }
    }

    /**
     * Checks if new repositories appeared in or disappeared from cluster metadata and updates current list of
     * repositories accordingly.
     *
     * @param event cluster changed event
     */
    @Override
    public void clusterChanged(ClusterChangedEvent event) {
        try {
            RepositoriesMetaData oldMetaData = event.previousState().getMetaData().custom(RepositoriesMetaData.TYPE);
            RepositoriesMetaData newMetaData = event.state().getMetaData().custom(RepositoriesMetaData.TYPE);

            // Check if repositories got changed
            if ((oldMetaData == null && newMetaData == null) || (oldMetaData != null && oldMetaData.equals(newMetaData))) {
                return;
            }

            logger.trace("processing new index repositories for state version [{}]", event.state().version());

            Map<String, RepositoryHolder> survivors = new HashMap<>();
            // First, remove repositories that are no longer there
            for (Map.Entry<String, RepositoryHolder> entry : repositories.entrySet()) {
                if (newMetaData == null || newMetaData.repository(entry.getKey()) == null) {
                    logger.debug("unregistering repository [{}]", entry.getKey());
                    closeRepository(entry.getKey(), entry.getValue());
                } else {
                    survivors.put(entry.getKey(), entry.getValue());
                }
            }

            Map<String, RepositoryHolder> builder = new HashMap<>();
            if (newMetaData != null) {
                // Now go through all repositories and update existing or create missing
                for (RepositoryMetaData repositoryMetaData : newMetaData.repositories()) {
                    RepositoryHolder holder = survivors.get(repositoryMetaData.name());
                    if (holder != null) {
                        // Found previous version of this repository
                        if (!holder.type.equals(repositoryMetaData.type()) || !holder.settings.equals(repositoryMetaData.settings())) {
                            // Previous version is different from the version in settings
                            logger.debug("updating repository [{}]", repositoryMetaData.name());
                            closeRepository(repositoryMetaData.name(), holder);
                            holder = null;
                            try {
                                holder = createRepositoryHolder(repositoryMetaData);
                            } catch (RepositoryException ex) {
                                logger.warn("failed to change repository [{}]", ex, repositoryMetaData.name());
                            }
                        }
                    } else {
                        try {
                            holder = createRepositoryHolder(repositoryMetaData);
                        } catch (RepositoryException ex) {
                            logger.warn("failed to create repository [{}]", ex, repositoryMetaData.name());
                        }
                    }
                    if (holder != null) {
                        logger.debug("registering repository [{}]", repositoryMetaData.name());
                        builder.put(repositoryMetaData.name(), holder);
                    }
                }
            }
            repositories = unmodifiableMap(builder);
        } catch (Throwable ex) {
            logger.warn("failure updating cluster state ", ex);
        }
    }

    /**
     * Returns registered repository
     *

     * This method is called only on the master node
     *
     * @param repository repository name
     * @return registered repository
     * @throws RepositoryMissingException if repository with such name isn't registered
     */
    public Repository repository(String repository) {
        RepositoryHolder holder = repositories.get(repository);
        if (holder != null) {
            return holder.repository;
        }
        throw new RepositoryMissingException(repository);
    }

    /**
     * Returns registered index shard repository
     *

     * This method is called only on data nodes
     *
     * @param repository repository name
     * @return registered repository
     * @throws RepositoryMissingException if repository with such name isn't registered
     */
    public IndexShardRepository indexShardRepository(String repository) {
        RepositoryHolder holder = repositories.get(repository);
        if (holder != null) {
            return holder.indexShardRepository;
        }
        throw new RepositoryMissingException(repository);
    }

    /**
     * Creates a new repository and adds it to the list of registered repositories.
     *

     * If a repository with the same name but different types or settings already exists, it will be closed and
     * replaced with the new repository. If a repository with the same name exists but it has the same type and settings
     * the new repository is ignored.
     *
     * @param repositoryMetaData new repository metadata
     * @return {@code true} if new repository was added or {@code false} if it was ignored
     */
    private boolean registerRepository(RepositoryMetaData repositoryMetaData) throws IOException {
        RepositoryHolder previous = repositories.get(repositoryMetaData.name());
        if (previous != null) {
            if (!previous.type.equals(repositoryMetaData.type()) && previous.settings.equals(repositoryMetaData.settings())) {
                // Previous version is the same as this one - ignore it
                return false;
            }
        }
        RepositoryHolder holder = createRepositoryHolder(repositoryMetaData);
        if (previous != null) {
            // Closing previous version
            closeRepository(repositoryMetaData.name(), previous);
        }
        Map<String, RepositoryHolder> newRepositories = new HashMap<>(repositories);
        newRepositories.put(repositoryMetaData.name(), holder);
        return true;
    }

    /**
     * Closes the repository
     *
     * @param name   repository name
     * @param holder repository holder
     */
    private void closeRepository(String name, RepositoryHolder holder) throws IOException {
        logger.debug("closing repository [{}][{}]", holder.type, name);
        if (holder.repository != null) {
            holder.repository.close();
        }
    }

    /**
     * Creates repository holder
     */
    private RepositoryHolder createRepositoryHolder(RepositoryMetaData repositoryMetaData) {
        logger.debug("creating repository [{}][{}]", repositoryMetaData.type(), repositoryMetaData.name());
        Injector repositoryInjector = null;
        try {
            ModulesBuilder modules = new ModulesBuilder();
            RepositoryName name = new RepositoryName(repositoryMetaData.type(), repositoryMetaData.name());
            modules.add(new RepositoryNameModule(name));
            modules.add(new RepositoryModule(name, repositoryMetaData.settings(), this.settings, typesRegistry));

            repositoryInjector = modules.createChildInjector(injector);
            Repository repository = repositoryInjector.getInstance(Repository.class);
            IndexShardRepository indexShardRepository = repositoryInjector.getInstance(IndexShardRepository.class);
            repository.start();
            return new RepositoryHolder(repositoryMetaData.type(), repositoryMetaData.settings(), repositoryInjector, repository, indexShardRepository);
        } catch (Throwable t) {
            logger.warn("failed to create repository [{}][{}]", t, repositoryMetaData.type(), repositoryMetaData.name());
            throw new RepositoryException(repositoryMetaData.name(), "failed to create repository", t);
        }
    }

    private void ensureRepositoryNotInUse(ClusterState clusterState, String repository) {
        if (SnapshotsService.isRepositoryInUse(clusterState, repository) || RestoreService.isRepositoryInUse(clusterState, repository)) {
            throw new IllegalStateException("trying to modify or unregister repository that is currently used ");
        }
    }

    private class VerifyingRegisterRepositoryListener implements ActionListener<ClusterStateUpdateResponse> {

        private final String name;

        private final ActionListener<ClusterStateUpdateResponse> listener;

        public VerifyingRegisterRepositoryListener(String name, final ActionListener<ClusterStateUpdateResponse> listener) {
            this.name = name;
            this.listener = listener;
        }

        @Override
        public void onResponse(final ClusterStateUpdateResponse clusterStateUpdateResponse) {
            if (clusterStateUpdateResponse.isAcknowledged()) {
                // The response was acknowledged - all nodes should know about the new repository, let's verify them
                verifyRepository(name, new ActionListener<VerifyResponse>() {
                    @Override
                    public void onResponse(VerifyResponse verifyResponse) {
                        if (verifyResponse.failed()) {
                            listener.onFailure(new RepositoryVerificationException(name, verifyResponse.failureDescription()));
                        } else {
                            listener.onResponse(clusterStateUpdateResponse);
                        }
                    }

                    @Override
                    public void onFailure(Throwable e) {
                        listener.onFailure(e);
                    }
                });
            } else {
                listener.onResponse(clusterStateUpdateResponse);
            }
        }

        @Override
        public void onFailure(Throwable e) {
            listener.onFailure(e);
        }
    }

    /**
     * Internal data structure for holding repository with its configuration information and injector
     */
    private static class RepositoryHolder {

        private final String type;
        private final Settings settings;
        private final Repository repository;
        private final IndexShardRepository indexShardRepository;

        public RepositoryHolder(String type, Settings settings, Injector injector, Repository repository, IndexShardRepository indexShardRepository) {
            this.type = type;
            this.settings = settings;
            this.repository = repository;
            this.indexShardRepository = indexShardRepository;
        }
    }

    /**
     * Register repository request
     */
    public static class RegisterRepositoryRequest extends ClusterStateUpdateRequest<RegisterRepositoryRequest> {

        final String cause;

        final String name;

        final String type;

        final boolean verify;

        Settings settings = EMPTY_SETTINGS;

        /**
         * Constructs new register repository request
         *
         * @param cause repository registration cause
         * @param name  repository name
         * @param type  repository type
         * @param verify verify repository after creation
         */
        public RegisterRepositoryRequest(String cause, String name, String type, boolean verify) {
            this.cause = cause;
            this.name = name;
            this.type = type;
            this.verify = verify;
        }

        /**
         * Sets repository settings
         *
         * @param settings repository settings
         * @return this request
         */
        public RegisterRepositoryRequest settings(Settings settings) {
            this.settings = settings;
            return this;
        }
    }

    /**
     * Unregister repository request
     */
    public static class UnregisterRepositoryRequest extends ClusterStateUpdateRequest<UnregisterRepositoryRequest> {

        final String cause;

        final String name;

        /**
         * Creates a new unregister repository request
         *
         * @param cause repository unregistration cause
         * @param name  repository name
         */
        public UnregisterRepositoryRequest(String cause, String name) {
            this.cause = cause;
            this.name = name;
        }

    }

    /**
     * Verify repository request
     */
    public static class VerifyResponse {

        private VerificationFailure[] failures;

        private DiscoveryNode[] nodes;

        public VerifyResponse(DiscoveryNode[] nodes, VerificationFailure[] failures) {
            this.nodes = nodes;
            this.failures = failures;
        }

        public VerificationFailure[] failures() {
            return failures;
        }

        public DiscoveryNode[] nodes() {
            return nodes;
        }

        public boolean failed() {
            return  failures.length > 0;
        }

        public String failureDescription() {
            return Arrays
                    .stream(failures)
                    .map(failure -> failure.toString())
                    .collect(Collectors.joining(", ", "[", "]"));
        }

    }

}


Re-invent your desk! With our articles in genuine leather.
Even the little things should be treasured! They help to make everyday life easier and brighten up our lives. Although they do not jump out at first glance, they are nevertheless very important. Of course, we at Gusti Leather do not neglect these small items and we offer very special products of high-quality finished leather for your desk at work or home office. These include leather book covers, USB stick covers and leather cases. Whether in vintage style or in a modern classic chic - here is something for everyone!
They may be small, but they're practical and can be a solid, everyday companion. Our book covers are ideal for important documents or to protect your favorite books. The USB stick casing ensures that your data is safe and our leather cases can also comfortably store the most important little things such as makeup or even chewing gum, while remaining close to hand.
Goatksin, cowhide or buffalo hide? Decide for yourself which suits you!
Our products are made of either buffalo hide, cowhide or goatskin. You have the choice to decide which suits you best! Items from the thicker buffalo hide and cowhide are more robust and sturdy, whereas goatskin is softer and more flexible. Our "Gusti Leather nature" items have a distinct vintage style through their tanning, dying and oiling using plant and vegetable based solutions. Particular stability is guaranteed in our "Gusti Leather studio" range where these leathers are chemically tanned in certified factories.