text:
Chris McCarron: the thrill of that first Kentucky Derby win just grows over the years
Chris McCarron | May 13, 2019 |
Chris McCarron and Alysheba: "I won races with considerably larger purses, but they all pale in comparison to the thrill of winning that first Kentucky Derby"
It has been 25 years since Chris McCarron won his second, and his last, Kentucky Derby (aboard Go For Gin). But the one he remembers most vividly all these years later is the 1987 Run for the Roses, which he won aboard Alysheba.
Here McCarron, who lives in Lexington, Kentucky and now serves an executive on the Team Valor International, reminisces about the thrill of winning his first Derby, the profound impact it had on his journey from the outskirts of his native Boston to the National Museum of Racing's Hall of Fame in Saratoga Springs.
When I retired as a rider in June 2002, I had ridden in over 34,000 races and won more than 7,100 of them. I won races with considerably larger purses, but they all pale in comparison to the thrill of winning that first Kentucky Derby.
And I don't think it was any coincidence that I was elected and inducted into the National Museum of Racing's Hall of Fame two years later, joining personal idols like Eddie Arcaro, Bill Shoemaker, Johnny Longden and Ron Turcotte.
If there's one race that can put a rider on the map, it's the Run for the Roses. It has been contested since 1875. Winning it provides an exceptional boost to your career. It is really a life-changing event.
While I've always tried to be a person who looked ahead rather than behind, it's hard not to look back when the Triple Crown races come around each spring. And looking back on my Derby win with Alysheba always brings back many fond memories of May 2, 1987.
It also triggers thoughts and countless recollections of the people, places and events that brought me to that fateful day.
It was a long and winding road, to be sure.
I grew up in the Boston suburb of Dorchester, the seventh of Herb and Helen McCarron's nine children. Hockey was really the sport I loved most. Whether it was on the ice or in the street, we played hockey for a good six months a year.
The thought of pursuing a career as a jockey never entered my head, even after my older brother, Gregg, had ventured off to the local racetrack, Suffolk Downs in East Boston, in 1969. Riding at Rockingham Park in New Hampshire and Suffolk Downs, he started winning races and earning a good living.
That got my attention, and I spent the summer of 1971, between my junior and senior year in high school, working as a hot walker with a trainer named Odie Clelland at Rockingham Park.
The following summer, I was back living in my parents' home in Dorchester and bumming rides to the track from a friend and workmate of mine named Judy Wexler. She too worked for Odie Clelland and she was kind enough to drive from Brookline to Dorchester early each morning to give me a ride to work. Needless to say, I was immensely grateful, but I had absolutely no idea what an influence she would have on my life or career at the time.
Sometime that summer, Odie decided he wanted to cut down on his travel and just stay in Maryland, which had what amounted to a year-round circuit with Bowie, Laurel and Pimlico race courses. It would turn out to be a blessing in disguise for me.
I was 'promoted' to groom that summer. I was now responsible for the daily care of four horses. This included cleaning the stalls, feeding and bandaging the horses and leading the horses over to a race.
By now, I had decided to follow Gregg's path to becoming a jockey. My parents felt a little better about the situation by then, but my mom never really got over the fear of danger that we faced every time we got on a horse. In truth, she had good reason to worry, something I appreciated a lot better when I became a parent.
It didn't take long for me to feel the same way about the sport that Gregg did. I had a competitive nature and I just loved everything about it. I rode my first race on January 24, 1974, at Bowie and won my first race on February 9, 1974. It was the tenth mount of my career.
Witnessing history - then making it
Besides being home to the Preakness Stakes, Maryland had a rich history when it came to Thoroughbred breeding and Thoroughbred racing. It was also a proving ground for jockeys, many of whom went on to bigger and better things after spending time in Maryland. Kent Desormeaux, Ramon Dominguez and Edgar Prado are a few who come to mind.
In 1973, I was in Maryland to see Sandy Hawley break the legendary Bill Shoemaker's record for most wins in a year. Bill had won 485 races in 1953, and the record had stood for 20 years. Sandy won number 500 on December 15, 1973 at Laurel Park and by the end of the year, he had won 515 races.
I was thrilled to witness history; it never crossed my mind that I would be breaking Sandy's record a year later.
With the advantage of the weight allowance granted to apprentice jockeys, it wasn't long before trainers were giving me mounts. I was winning races in bunches. By the time 1974 ended, I had won 546 races, leading the nation and breaking the record held briefly by Sandy. I won an Eclipse Award for my achievement.
During the fall meet at Laurel that year, Judy Wexler showed up at my doorstep with two suitcases in hand. She didn't have a place to stay. We were good friends and, just as I would say to any friend, I told her she could stay with me until she found place.
Looking back, I'm not sure she looked too hard for a place. As sometimes happens in such a situation, the friendship evolved into something more. We got married in January 1976, less than two years later.
1974 was also the year that the significance of the Kentucky Derby really hit home for me.
The move to California
On Preakness weekend, all the top riders in the country were getting mounts that the local riders would have had. It made quite an impression on me to see how in demand they were, and I wanted to be one of those elite riders. That meant shifting my tack to New York or Southern California.
I was going out there on occasion to ride in a major races and I liked what I saw. The competition, the purse structure and the weather were all very appealing to me.
So Judy and I packed all our belongings in a station wagon and headed west. We left on March 27, 1978, the day I celebrated my 23rd birthday. Judy was pregnant. We rented an apartment in Torrance, California, when we got there.
To procure mounts in the afternoon, jockey agents often offer the services on their riders for morning workouts. Harry the Hat Hasek wanted me to get to know all the California trainers as quickly as possible so, in addition to looking for mounts in the afternoon, he also told any number of them that I'd be glad to work their horses in the morning.
I'd get on anywhere from six to nine horses each morning. He worked my ass off.
Since my services were in such high demand in Maryland, I didn't have to work too hard during morning training hours to get mounts. But this was a whole new ballgame. Harry's aggressive strategy paid handsome dividends and paid them quickly. In my first full race meet in Southern California, I finished fourth in the jockey standings. Sandy Hawley, Darrell McHargue and Laffit Pincay Jr were ahead of me, but I was in front on everyone else, including the legendary Bill Shoemaker.
A colt named Alysheba
I was on my way to becoming one of those elite riders. I led the nation in wins in 1974, 1975 and 1980 and led in purse earnings for a jockey in 1980, 1981 and 1984.
And I was seeing more and more of a legendary trainer named Jack Van Berg. Jack was the son of a Hall of Fame trainer and he became one himself during a 60-year career in which he won more than 6,500 races.
By the middle and latter part of the 1980s, I had ridden for him often and we'd had some success and some good luck, especially on the West Coast. If a jockey did something wrong in a race or didn't closely follow his instructions, he'd give you an earful after the race. But it was always well intentioned and I never took any criticism from him personally.
By then, I had won numerous major stakes around the country, including the 1986 Belmont Stakes on a colt named Danzig Connection, the last of trainer Woody Stephens' five consecutive Belmont winners.
Jack was training a colt named Alysheba. I was quite aware of his talent even before I rode him for the first time. As a 2-year-old, he had run a huge race and finished third in the Breeders' Cup Juvenile on November 1, 1986. Unfortunately, I was recuperating from one of the most serious spills of my career at that time. On Thursday, October 16, 1986, I had broken my femur in a five-horse spill at Santa Anita and I'd had an eight-ounce metal plate inserted during a three-hour surgery the next day.
I was already thinking about all the good mounts I had lined up for that Breeders' Cup when the ambulance was taking me to the hospital. Missing a multi-million dollar nationally televised event like the Breeders' Cup was a very bitter pill to swallow.
This was going to be the third running of the Breeders' Cup. When I first heard about the Breeders' Cup in 1982 or 1983, I doubted it would ever become a reality. They said NBC Sports was going to cover it, but I didn't know how they would fill four and a half hours, even with nine races.
The first one was held at Hollywood Park in Inglewood, California. Some of Hollywood's biggest names were there to see it, including Liz Taylor, Cary Grant, and John Forsythe.
There was a silver lining of sorts when I had to miss the third one: I was invited to sit with sportscaster Dick Enberg on the NBC telecast of the Breeders' Cup and provide some commentary on the races.
He became a good friend, whom I often saw during the Del Mar racing season.
Procuring mounts is a funny business. Jockeys all have jockey agents, who are tasked with finding the best horses to ride in any given race. They are also expected to maintain good relations with as many trainers as possible. For all that, they get a 25 percent cut of the jockey's earnings.
A game of musical chairs
When it comes to jockeys (or their agents) lining up mounts for major stakes races, like the Triple Crown or Breeders' Cup races, it often resembles a game of musical chairs. And that was the case with Alysheba in the spring of 1987.
One morning a few days after the San Felipe, I was walking around in the barn area at Hollywood Park and I saw Jack leading a colt around. He said to me, "Are you fit enough to ride yet?"
I told him I was, and he told me to come by the barn the next morning to get on a colt (for a morning workout). I had the mount from that point on.
But Alysheba still had some obstacles in his way. Jack had noticed that in his first two races as a 3-year-old, the colt seemed to be cocking his head to the side as if he were struggling to get air. An endoscopic exam revealed an entrapped epiglottis and on March 24, 1986, Dr Scott Merrill performed throat surgery on Alysheba.
The surgery was successful, but when Alysheba got to Keeneland Race Course in Lexington a few weeks later, he spiked a fever and the Blue Grass Stakes on April 24, run just eight days before the Derby, suddenly became Jack's last chance to get him in a race before the Kentucky Derby.
I rode him for the first time that day and he was the favorite. He ran a great race but, with about a sixteenth of a mile to go in the stretch, he kind of skipped over some tire tracks left by the tractors used to position the starting gate and he veered slightly to his right. He bumped a colt named Leo Castelli and finished a head in front of War, who was another head in front of Leo Castelli.
Vivid memories
After reviewing the video and talking to the two riders, the stewards disqualified Alysheba, placing him third instead of first. War was declared the winner with Leo Castelli second. I didn't agree with their decision, but there wasn't much I could do about it.
The way Alysheba had run in the Blue Grass, even with the disqualification, made us all very confident going into the Derby. By now, I obviously had a much better appreciation for the Derby. I might have been slow to come around, but I realized the impact it had on the lives and careers of people in our sport. This was the big kahuna of horse racing.
It reeked with tradition. The mint juleps, the ladies' hats, the parties, the celebrities from all walks of life, the international television audience … and always a different cast of colorful characters among the owners and trainers.
By 1987, I had ridden in six Derbys. In fact, I'd finished second to Ferdinand while riding a horse named Bold Arrangement the year before. All these years later, my best and most vivid memories trace back to that 1987 Derby.
When my wife Judy and I arrived in Louisville on the Thursday before the Derby, we checked into the Executive West hotel, which had long been a headquarters of sorts for Derby owners, trainers and jockeys. We didn't realize until late that night that our room was facing Standiford Field, the Louisville airport, which is a hub for United Parcel Service.
Sleep at any price
UPS jets were taking off about every six minutes starting at 1am. Our windows rattled every time they did and I got very little sleep.
I went looking for the general manager the next morning. He said he could move me to a suite - but it would be even more expensive than the already astronomical rates Louisville hotels charge that week.
I didn't care. I needed my sleep.
I also distinctly remember an exchange I had with one of the track maintenance guys when the horses stepped onto the track for the Derby. I yelled over to him, "Hey, make sure you get rid of all the tire tracks from the tractor, please!" We both laughed.
And then there was the playing of My Old Kentucky Home. It's a unique feeling and one that is really difficult to describe or put into words. You just have a deep appreciation for the history and the tradition of the event. There's a real sense of nostalgia and it's a feeling you don't feel for any other race.
Oddly, when you go out on the track for any other race on Derby Day, it's a completely different vibe. When you go out for the Derby, though, there is this extremely loud and dull roar. You feel a sense of exhilaration no matter what horse you're on, whether you're on a favorite or a longshot or something in between. It can be a once in a lifetime chance for an owner, trainer or jockey to make history. Or, as Dan Fogelberg sang, "it's the chance of a lifetime in a lifetime of chance."
There are no do-overs or second chances for that horse.
Miraculous recovery
It is not an easy race to win and, in fact, some of our sport's most accomplished horses did not win it. Among them: Seabiscuit, Man o' War, Kelso, Forego, John Henry and Cigar.
I felt goosebumps every time I rode in the Kentucky Derby … and I never felt them in any other race.
Shortly after the starting gate sprung open, another horse wiped us out about 100 yards from the gate. But Alysheba was such a good horse and such a great athlete, you just had to point him in the right direction and he'd take you there. After that first bumping incident, he ran nicely and I just eased my way between horses and eventually put him on the outside so his momentum wouldn't be interrupted.
But, as we caught the frontrunner Bet Twice in deep stretch, Alysheba clipped heels with Bet Twice and nearly went down. Miraculously, he recovered from the stumble and continued on.
All I remember thinking is: we've one horse to get by to win the Kentucky Derby. I wasn't thinking about the 16 horses behind us and the terrible wreck that might have ensued had we gone down.
Alysheba crossed the finish line three quarters of a length ahead of Bet Twice. I had won the Kentucky Derby!
One of the first people I saw in the winner's circle was the track maintenance guy who I asked to smooth over the tractor's tire tracks. He had a huge smile on his face and I told him to come see me in the jockeys' room after the races.
In the winner's circle interview with sportscaster Jim McKay, I got to see a replay of the stretch run. I couldn't believe my eyes. I really didn't realize how bad the stumble had been (see the YouTube video below - the race itself starts after 10 mins 24 seconds).
Once the ABC telecast concluded, I was escorted by a track representative and two burly police officers to the press box for a press conference and then through the crowd back to the jockeys' room. One of the officers told me to hold my helmet tightly in my hand or else someone would grab it as a souvenir.
With the police escort, I felt like a rock star for the first time in my life. It was fun but I'm not sure I'd want to live my life that way.
Usually, when you win a Triple Crown race, you're too busy afterwards with the press conference and other ceremonies to ride any mounts you have in the few lesser races scheduled at the end of the day. Other riders are glad to pinch hit.
I wanted to skip the last two races I had that day, but Jack was the trainer of one of them and he insisted I keep my commitment. The horse finished second.
When my pal the track maintenance worker came by the jocks' room, I gave him my thanks and a $100 bill.
There was a memorable victory celebration that night. The entire Alysheba crew headed for Pat's Steak House in Louisville. There were about 30 of us in the group and, since Pat's was a popular spot with the racing folks, plenty of them were in there when we arrived. We got a standing ovation.
And it turned out to be one late night.
Preakness confidence
Before I checked out of the hotel early Sunday morning for our flight back to California, I went to see the general manager again. I had plucked one of the roses from the blanket of roses and I gave it to him as souvenir.
A few days later, a package arrived at my home. The track maintenance guy had used all of the $100 to buy all sorts of Kentucky Derby souvenirs. Hats, T-shirts, key chains … you name it.
I remember feeling and thinking about what a great sport I was involved in and about what great people I was meeting along the way.
Naturally, I was looking forward to the Preakness two weeks away at Pimlico Race Course in Baltimore, a track I knew quite well. The Preakness is always a smaller field of horses and a shorter distance. I was confident that Alysheba could win the second jewel of the Triple Crown. We had an uneventful trip and won by half a length.
Now it was really get interesting. With the Belmont Stakes three weeks away, Alysheba was now poised to make a run at history: he could become the 12th Triple Crown winner in Thoroughbred racing history.
Missing out at Belmont
There had not been a Triple Crown winner since Affirmed won all three races over his rival Alydar in the spring of 1978. There had not even been an attempt at a Triple Crown since 1979, as no horse had won both the Derby and the Preakness.
Adding to the drama and the excitement was the $5 million bonus for any horse winning the Triple Crown and the $1 million bonus for the horse that compiled the most points in the three races.
I was scheduled to fly from Los Angeles to New York on a red-eye Thursday night. We had a scary incident, however, when an engine caught fire and we had to return to the airport. I had to stay in a hotel near the airport and I didn't get to New York until dinner time Friday night.
My trip in the Belmont Stakes the next day wasn't much better.
I took Alysheba back and really didn't ride my best race. Bet Twice was the better horse that day and it was heart-wrenching to finish fourth and miss out on all that bonus money. Had we finished second or third, we would have salvaged the $1 million bonus.
To be honest, I thought it to be a bit unfair that Alysheba won two of the three races and Bet Twice got the bonus. By the time both horses had retired the following year, however, Alysheba had won five of their nine meetings. Bet Twice won four.
But Alysheba won seven Grade 1s as a 4-year-old in 1988, including the Breeders' Cup Classic, and finished as the sport's all-time leading earner with purses of $6,679,242.
Career boost
The publicity I got from his Triple Crown campaign and his 4-year-old campaign really gave my career a boost.
I won a second Derby in 1994 with the Nick Zito-trained Go For Gin, another Belmont Stakes and two editions of the Preakness. I also won eight Breeders' Cup races and was inducted into the National Museum of Racing's Hall of Fame in Saratoga Springs in 1989 before retiring as a rider, at age 47, in June 2002.
I look back on the Hall of Fame induction as my proudest achievement. It represented many years of hard work. Horse racing is a sport of tremendous ups and downs. I certainly feel like there were far more ups than downs.
The thrills, the excitement and the handsome financial rewards far outweighed the dangers, injuries and disappointments along the way.
As I got longer in the tooth, it was harder to bounce back physically and mentally. I had given it a lot of thought and I was very comfortable with my decision to quit riding in 2002.
I still miss the big days and the big events, but overall I'm very satisfied with my career and all I accomplished. I'd absolutely do it again.
And the thrill of that 1987 Kentucky Derby with Alysheba, rather than fade into the distance, seems to intensify and grow as the years roll by.
Whenever a stranger finds out you are or were a professional jockey, the next question is always the same: "Have you ever won the Kentucky Derby?"
Since May 2, 1987, I have been able to say, with a broad smile on my face: "Yes! And I'd be glad to tell you all about it."
Chris McCarron was talking to Bob Curran Jr, the former vice president of corporate communications for The Jockey Club in the U.S.
Alysheba


Home » Home and Garden » How To Get A Custom Built Luxury Home Within Budget?
A lot of time, effort and savings go into the construction of your home. You may have spent considerable time choosing a suitable plot, arranging finance, looking for the right designs and getting it built as per your specifications and needs. By relying on the services of a reputed company to handle all aspects of the construction, you will find the quality of the construction superior in addition to the considerable savings in cost. Here are a few tips that you can use effectively to leverage the benefits of a qualified and competent custom home builders.
When you employ the services of reputed luxury home builders Melbourne you can look forward to turnkey solutions. For instance, the plot that you have selected may have an existing structure. This may require to be demolished and the debris may have to be removed as per local council regulations. Rather than trying to arrange for separate demolition experts and a removal service, it would always be a good idea to use the services of a builder who takes care of everything from demolition to design.
The design and development of a home call for active liaison with various agencies and government departments. If you take care of all the aspects of construction, you will have to arrange for the right quality of materials, be in touch with a contractor, ensure that the construction activity is as per the regulations of the local council and keep your costs low. This will be challenging considering the need for taking an informed decision throughout the construction process. When you use the services of a custom home builder, you will get the benefit of working with a team that will take care of all the needs.
You may have a brilliant idea or concept regarding the design of the home. However, it is important that you use the right kind of materials and employ the services of a contractor to translate the idea or concept into features of your luxury home. It is, therefore, necessary to choose a custom home builder who possesses the expertise to translate your ideas. Additionally, it is also necessary to use the services of a builder who has unique creative designs and concepts. After all, you would what your home to be stylish and unique.
By using the services of a reputed builder, you will enjoy the benefits of a team that works as per a plan. In other words, it means that the architect will work in close coordination with other resources to ensure that the procurement of materials and deployment of manpower are as per a schedule. Effectively this means that you will get to see your project completed on time, as per your exact desires and most importantly, within the total budget. Choose a good builder who has the resources and their expertise to execute a project of different sizes, and you can look forward to realizing your dream.


So what to blog about today? Perhaps another craft based gift? But………….Can't seem to find the enthusiasm given that the whole Christmas thing is so (very nearly) last year. Ok, maybe a tasty recipe (after all this is a food blog and we've been totally rubbish at this lately) – but no…… again no real enthusiasm! Ok maybe a little tale about how we've spent our day? But…………. Nah, although the day's activities is great blog fodder we fancy doing a really good post about this very soon (if your itching to know we have been sorting out the utility room and don't worry we have before and after shots)! Ok maybe some supermarket based ramblings………………phhaff can't be bothered!


text:
extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fstruct_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto;
PROTOBUF_NAMESPACE_OPEN
class Struct_FieldsEntry_DoNotUseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Struct_FieldsEntry_DoNotUse> _instance;
} _Struct_FieldsEntry_DoNotUse_default_instance_;
class StructDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Struct> _instance;
} _Struct_default_instance_;
class ValueDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Value> _instance;
  int null_value_;
  double number_value_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr string_value_;
  bool bool_value_;
  const PROTOBUF_NAMESPACE_ID::Struct* struct_value_;
  const PROTOBUF_NAMESPACE_ID::ListValue* list_value_;
} _Value_default_instance_;
class ListValueDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ListValue> _instance;
} _ListValue_default_instance_;
PROTOBUF_NAMESPACE_CLOSE
static void InitDefaultsscc_info_ListValue_google_2fprotobuf_2fstruct_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &PROTOBUF_NAMESPACE_ID::_Struct_FieldsEntry_DoNotUse_default_instance_;
    new (ptr) PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse();
  }
  {
    void* ptr = &PROTOBUF_NAMESPACE_ID::_Struct_default_instance_;
    new (ptr) PROTOBUF_NAMESPACE_ID::Struct();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  {
    void* ptr = &PROTOBUF_NAMESPACE_ID::_Value_default_instance_;
    new (ptr) PROTOBUF_NAMESPACE_ID::Value();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  {
    void* ptr = &PROTOBUF_NAMESPACE_ID::_ListValue_default_instance_;
    new (ptr) PROTOBUF_NAMESPACE_ID::ListValue();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse::InitAsDefaultInstance();
  PROTOBUF_NAMESPACE_ID::Struct::InitAsDefaultInstance();
  PROTOBUF_NAMESPACE_ID::Value::InitAsDefaultInstance();
  PROTOBUF_NAMESPACE_ID::ListValue::InitAsDefaultInstance();
}

PROTOBUF_EXPORT ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_ListValue_google_2fprotobuf_2fstruct_2eproto}, {}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2fprotobuf_2fstruct_2eproto[4];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_google_2fprotobuf_2fstruct_2eproto[1];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2fprotobuf_2fstruct_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2fprotobuf_2fstruct_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Struct, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Struct, fields_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Value, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Value, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(PROTOBUF_NAMESPACE_ID::ValueDefaultTypeInternal, null_value_),
  offsetof(PROTOBUF_NAMESPACE_ID::ValueDefaultTypeInternal, number_value_),
  offsetof(PROTOBUF_NAMESPACE_ID::ValueDefaultTypeInternal, string_value_),
  offsetof(PROTOBUF_NAMESPACE_ID::ValueDefaultTypeInternal, bool_value_),
  offsetof(PROTOBUF_NAMESPACE_ID::ValueDefaultTypeInternal, struct_value_),
  offsetof(PROTOBUF_NAMESPACE_ID::ValueDefaultTypeInternal, list_value_),
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::Value, kind_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::ListValue, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(PROTOBUF_NAMESPACE_ID::ListValue, values_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 7, sizeof(PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse)},
  { 9, -1, sizeof(PROTOBUF_NAMESPACE_ID::Struct)},
  { 15, -1, sizeof(PROTOBUF_NAMESPACE_ID::Value)},
  { 27, -1, sizeof(PROTOBUF_NAMESPACE_ID::ListValue)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&PROTOBUF_NAMESPACE_ID::_Struct_FieldsEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&PROTOBUF_NAMESPACE_ID::_Struct_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&PROTOBUF_NAMESPACE_ID::_Value_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&PROTOBUF_NAMESPACE_ID::_ListValue_default_instance_),
};

const char descriptor_table_protodef_google_2fprotobuf_2fstruct_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\034google/protobuf/struct.proto\022\017google.p"
  "rotobuf\"\204\001\n\006Struct\0223\n\006fields\030\001 \003(\0132#.goo"
  "gle.protobuf.Struct.FieldsEntry\032E\n\013Field"
  "sEntry\022\013\n\003key\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.goo"
  "gle.protobuf.Value:\0028\001\"\352\001\n\005Value\0220\n\nnull"
  "_value\030\001 \001(\0162\032.google.protobuf.NullValue"
  "H\000\022\026\n\014number_value\030\002 \001(\001H\000\022\026\n\014string_val"
  "ue\030\003 \001(\tH\000\022\024\n\nbool_value\030\004 \001(\010H\000\022/\n\014stru"
  "ct_value\030\005 \001(\0132\027.google.protobuf.StructH"
  "\000\0220\n\nlist_value\030\006 \001(\0132\032.google.protobuf."
  "ListValueH\000B\006\n\004kind\"3\n\tListValue\022&\n\006valu"
  "es\030\001 \003(\0132\026.google.protobuf.Value*\033\n\tNull"
  "Value\022\016\n\nNULL_VALUE\020\000B\201\001\n\023com.google.pro"
  "tobufB\013StructProtoP\001Z1github.com/golang/"
  "protobuf/ptypes/struct;structpb\370\001\001\242\002\003GPB"
  "\252\002\036Google.Protobuf.WellKnownTypesb\006proto"
  "3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2fprotobuf_2fstruct_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2fprotobuf_2fstruct_2eproto_sccs[1] = {
  &scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2fprotobuf_2fstruct_2eproto_once;
static bool descriptor_table_google_2fprotobuf_2fstruct_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fprotobuf_2fstruct_2eproto = {
  &descriptor_table_google_2fprotobuf_2fstruct_2eproto_initialized, descriptor_table_protodef_google_2fprotobuf_2fstruct_2eproto, "google/protobuf/struct.proto", 641,
  &descriptor_table_google_2fprotobuf_2fstruct_2eproto_once, descriptor_table_google_2fprotobuf_2fstruct_2eproto_sccs, descriptor_table_google_2fprotobuf_2fstruct_2eproto_deps, 1, 0,
  schemas, file_default_instances, TableStruct_google_2fprotobuf_2fstruct_2eproto::offsets,
  file_level_metadata_google_2fprotobuf_2fstruct_2eproto, 4, file_level_enum_descriptors_google_2fprotobuf_2fstruct_2eproto, file_level_service_descriptors_google_2fprotobuf_2fstruct_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_google_2fprotobuf_2fstruct_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2fprotobuf_2fstruct_2eproto), true);
PROTOBUF_NAMESPACE_OPEN
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NullValue_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_google_2fprotobuf_2fstruct_2eproto);
  return file_level_enum_descriptors_google_2fprotobuf_2fstruct_2eproto[0];
}
bool NullValue_IsValid(int value) {
  switch (value) {
    case 0:
      return true;
    default:
      return false;
  }
}

// ===================================================================

Struct_FieldsEntry_DoNotUse::Struct_FieldsEntry_DoNotUse() {}
Struct_FieldsEntry_DoNotUse::Struct_FieldsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void Struct_FieldsEntry_DoNotUse::MergeFrom(const Struct_FieldsEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata Struct_FieldsEntry_DoNotUse::GetMetadata() const {
  return GetMetadataStatic();
}
void Struct_FieldsEntry_DoNotUse::MergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::Message& other) {
  ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other);
}

// ===================================================================

void Struct::InitAsDefaultInstance() {
}
class Struct::_Internal {
 public:
};

Struct::Struct()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.Struct)
}
Struct::Struct(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
  _internal_metadata_(arena),
  fields_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:google.protobuf.Struct)
}
Struct::Struct(const Struct& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  fields_.MergeFrom(from.fields_);
  // @@protoc_insertion_point(copy_constructor:google.protobuf.Struct)
}

void Struct::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base);
}

Struct::~Struct() {
  // @@protoc_insertion_point(destructor:google.protobuf.Struct)
  SharedDtor();
}

void Struct::SharedDtor() {
  GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr);
}

void Struct::ArenaDtor(void* object) {
  Struct* _this = reinterpret_cast< Struct* >(object);
  (void)_this;
}
void Struct::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Struct::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Struct& Struct::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base);
  return *internal_default_instance();
}

void Struct::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.Struct)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  fields_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Struct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // map<string, .google.protobuf.Value> fields = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&fields_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Struct::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.Struct)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // map<string, .google.protobuf.Value> fields = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          Struct_FieldsEntry_DoNotUse::Parser< ::PROTOBUF_NAMESPACE_ID::internal::MapField<
              Struct_FieldsEntry_DoNotUse,
              std::string, PROTOBUF_NAMESPACE_ID::Value,
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE,
              0 >,
            ::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value > > parser(&fields_);
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "google.protobuf.Struct.FieldsEntry.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.Struct)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.Struct)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Struct::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.Struct)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .google.protobuf.Value> fields = 1;
  if (!this->fields().empty()) {
    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.Struct.FieldsEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->fields().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->fields().size()]);
      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::size_type size_type;
      size_type n = 0;
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_iterator
          it = this->fields().begin();
          it != this->fields().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      for (size_type i = 0; i < n; i++) {
        Struct_FieldsEntry_DoNotUse::Funcs::SerializeToCodedStream(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, output);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_iterator
          it = this->fields().begin();
          it != this->fields().end(); ++it) {
        Struct_FieldsEntry_DoNotUse::Funcs::SerializeToCodedStream(1, it->first, it->second, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.Struct)
}

::PROTOBUF_NAMESPACE_ID::uint8* Struct::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Struct)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .google.protobuf.Value> fields = 1;
  if (!this->fields().empty()) {
    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.Struct.FieldsEntry.key");
      }
    };

    if (false &&
        this->fields().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->fields().size()]);
      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::size_type size_type;
      size_type n = 0;
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_iterator
          it = this->fields().begin();
          it != this->fields().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      for (size_type i = 0; i < n; i++) {
        target = Struct_FieldsEntry_DoNotUse::Funcs::SerializeToArray(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_iterator
          it = this->fields().begin();
          it != this->fields().end(); ++it) {
        target = Struct_FieldsEntry_DoNotUse::Funcs::SerializeToArray(1, it->first, it->second, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Struct)
  return target;
}

size_t Struct::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.Struct)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .google.protobuf.Value> fields = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->fields_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, PROTOBUF_NAMESPACE_ID::Value >::const_iterator
      it = this->fields().begin();
      it != this->fields().end(); ++it) {
    total_size += Struct_FieldsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Struct::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.Struct)
  GOOGLE_DCHECK_NE(&from, this);
  const Struct* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Struct>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.Struct)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.Struct)
    MergeFrom(*source);
  }
}

void Struct::MergeFrom(const Struct& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.Struct)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  fields_.MergeFrom(from.fields_);
}

void Struct::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.Struct)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Struct::CopyFrom(const Struct& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.Struct)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Struct::IsInitialized() const {
  return true;
}

void Struct::InternalSwap(Struct* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  fields_.Swap(&other->fields_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Struct::GetMetadata() const {
  return GetMetadataStatic();
}

// ===================================================================

void Value::InitAsDefaultInstance() {
  PROTOBUF_NAMESPACE_ID::_Value_default_instance_.null_value_ = 0;
  PROTOBUF_NAMESPACE_ID::_Value_default_instance_.number_value_ = 0;
  PROTOBUF_NAMESPACE_ID::_Value_default_instance_.string_value_.UnsafeSetDefault(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  PROTOBUF_NAMESPACE_ID::_Value_default_instance_.bool_value_ = false;
  PROTOBUF_NAMESPACE_ID::_Value_default_instance_.struct_value_ = const_cast< PROTOBUF_NAMESPACE_ID::Struct*>(
      PROTOBUF_NAMESPACE_ID::Struct::internal_default_instance());
  PROTOBUF_NAMESPACE_ID::_Value_default_instance_.list_value_ = const_cast< PROTOBUF_NAMESPACE_ID::ListValue*>(
      PROTOBUF_NAMESPACE_ID::ListValue::internal_default_instance());
}
class Value::_Internal {
 public:
  static const PROTOBUF_NAMESPACE_ID::Struct& struct_value(const Value* msg);
  static const PROTOBUF_NAMESPACE_ID::ListValue& list_value(const Value* msg);
};

const PROTOBUF_NAMESPACE_ID::Struct&
Value::_Internal::struct_value(const Value* msg) {
  return *msg->kind_.struct_value_;
}
const PROTOBUF_NAMESPACE_ID::ListValue&
Value::_Internal::list_value(const Value* msg) {
  return *msg->kind_.list_value_;
}
void Value::set_allocated_struct_value(PROTOBUF_NAMESPACE_ID::Struct* struct_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_kind();
  if (struct_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(struct_value);
    if (message_arena != submessage_arena) {
      struct_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, struct_value, submessage_arena);
    }
    set_has_struct_value();
    kind_.struct_value_ = struct_value;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.struct_value)
}
void Value::set_allocated_list_value(PROTOBUF_NAMESPACE_ID::ListValue* list_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  clear_kind();
  if (list_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(list_value);
    if (message_arena != submessage_arena) {
      list_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, list_value, submessage_arena);
    }
    set_has_list_value();
    kind_.list_value_ = list_value;
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.list_value)
}
Value::Value()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.Value)
}
Value::Value(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
  _internal_metadata_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:google.protobuf.Value)
}
Value::Value(const Value& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  clear_has_kind();
  switch (from.kind_case()) {
    case kNullValue: {
      set_null_value(from.null_value());
      break;
    }
    case kNumberValue: {
      set_number_value(from.number_value());
      break;
    }
    case kStringValue: {
      set_string_value(from.string_value());
      break;
    }
    case kBoolValue: {
      set_bool_value(from.bool_value());
      break;
    }
    case kStructValue: {
      mutable_struct_value()->PROTOBUF_NAMESPACE_ID::Struct::MergeFrom(from.struct_value());
      break;
    }
    case kListValue: {
      mutable_list_value()->PROTOBUF_NAMESPACE_ID::ListValue::MergeFrom(from.list_value());
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.Value)
}

void Value::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base);
  clear_has_kind();
}

Value::~Value() {
  // @@protoc_insertion_point(destructor:google.protobuf.Value)
  SharedDtor();
}

void Value::SharedDtor() {
  GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr);
  if (has_kind()) {
    clear_kind();
  }
}

void Value::ArenaDtor(void* object) {
  Value* _this = reinterpret_cast< Value* >(object);
  (void)_this;
}
void Value::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Value::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Value& Value::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base);
  return *internal_default_instance();
}

void Value::clear_kind() {
// @@protoc_insertion_point(one_of_clear_start:google.protobuf.Value)
  switch (kind_case()) {
    case kNullValue: {
      // No need to clear
      break;
    }
    case kNumberValue: {
      // No need to clear
      break;
    }
    case kStringValue: {
      kind_.string_value_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
          GetArenaNoVirtual());
      break;
    }
    case kBoolValue: {
      // No need to clear
      break;
    }
    case kStructValue: {
      if (GetArenaNoVirtual() == nullptr) {
        delete kind_.struct_value_;
      }
      break;
    }
    case kListValue: {
      if (GetArenaNoVirtual() == nullptr) {
        delete kind_.list_value_;
      }
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = KIND_NOT_SET;
}

void Value::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.Value)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_kind();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Value::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .google.protobuf.NullValue null_value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          set_null_value(static_cast<PROTOBUF_NAMESPACE_ID::NullValue>(val));
        } else goto handle_unusual;
        continue;
      // double number_value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
          set_number_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else goto handle_unusual;
        continue;
      // string string_value = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_string_value(), ptr, ctx, "google.protobuf.Value.string_value");
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bool_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .google.protobuf.Struct struct_value = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(mutable_struct_value(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .google.protobuf.ListValue list_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(mutable_list_value(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Value::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.Value)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.NullValue null_value = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (8 & 0xFF)) {
          int value = 0;
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_null_value(static_cast< PROTOBUF_NAMESPACE_ID::NullValue >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // double number_value = 2;
      case 2: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (17 & 0xFF)) {
          clear_kind();
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   double, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &kind_.number_value_)));
          set_has_number_value();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string string_value = 3;
      case 3: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                input, this->mutable_string_value()));
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
            this->string_value().data(), static_cast<int>(this->string_value().length()),
            ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
            "google.protobuf.Value.string_value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool bool_value = 4;
      case 4: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (32 & 0xFF)) {
          clear_kind();
          DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                   bool, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_BOOL>(
                 input, &kind_.bool_value_)));
          set_has_bool_value();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Struct struct_value = 5;
      case 5: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.ListValue list_value = 6;
      case 6: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (50 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
               input, mutable_list_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.Value)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.Value)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Value::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.Value)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.NullValue null_value = 1;
  if (has_null_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
      1, this->null_value(), output);
  }

  // double number_value = 2;
  if (has_number_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDouble(2, this->number_value(), output);
  }

  // string string_value = 3;
  if (has_string_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->string_value().data(), static_cast<int>(this->string_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.Value.string_value");
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->string_value(), output);
  }

  // bool bool_value = 4;
  if (has_bool_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBool(4, this->bool_value(), output);
  }

  // .google.protobuf.Struct struct_value = 5;
  if (has_struct_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, _Internal::struct_value(this), output);
  }

  // .google.protobuf.ListValue list_value = 6;
  if (has_list_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, _Internal::list_value(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.Value)
}

::PROTOBUF_NAMESPACE_ID::uint8* Value::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Value)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.NullValue null_value = 1;
  if (has_null_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->null_value(), target);
  }

  // double number_value = 2;
  if (has_number_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->number_value(), target);
  }

  // string string_value = 3;
  if (has_string_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->string_value().data(), static_cast<int>(this->string_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.Value.string_value");
    target =
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
        3, this->string_value(), target);
  }

  // bool bool_value = 4;
  if (has_bool_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->bool_value(), target);
  }

  // .google.protobuf.Struct struct_value = 5;
  if (has_struct_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, _Internal::struct_value(this), target);
  }

  // .google.protobuf.ListValue list_value = 6;
  if (has_list_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, _Internal::list_value(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Value)
  return target;
}

size_t Value::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.Value)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (kind_case()) {
    // .google.protobuf.NullValue null_value = 1;
    case kNullValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->null_value());
      break;
    }
    // double number_value = 2;
    case kNumberValue: {
      total_size += 1 + 8;
      break;
    }
    // string string_value = 3;
    case kStringValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->string_value());
      break;
    }
    // bool bool_value = 4;
    case kBoolValue: {
      total_size += 1 + 1;
      break;
    }
    // .google.protobuf.Struct struct_value = 5;
    case kStructValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *kind_.struct_value_);
      break;
    }
    // .google.protobuf.ListValue list_value = 6;
    case kListValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *kind_.list_value_);
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Value::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.Value)
  GOOGLE_DCHECK_NE(&from, this);
  const Value* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Value>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.Value)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.Value)
    MergeFrom(*source);
  }
}

void Value::MergeFrom(const Value& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.Value)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.kind_case()) {
    case kNullValue: {
      set_null_value(from.null_value());
      break;
    }
    case kNumberValue: {
      set_number_value(from.number_value());
      break;
    }
    case kStringValue: {
      set_string_value(from.string_value());
      break;
    }
    case kBoolValue: {
      set_bool_value(from.bool_value());
      break;
    }
    case kStructValue: {
      mutable_struct_value()->PROTOBUF_NAMESPACE_ID::Struct::MergeFrom(from.struct_value());
      break;
    }
    case kListValue: {
      mutable_list_value()->PROTOBUF_NAMESPACE_ID::ListValue::MergeFrom(from.list_value());
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
}

void Value::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.Value)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Value::CopyFrom(const Value& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.Value)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Value::IsInitialized() const {
  return true;
}

void Value::InternalSwap(Value* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(kind_, other->kind_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Value::GetMetadata() const {
  return GetMetadataStatic();
}

// ===================================================================

void ListValue::InitAsDefaultInstance() {
}
class ListValue::_Internal {
 public:
};

ListValue::ListValue()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.ListValue)
}
ListValue::ListValue(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
  _internal_metadata_(arena),
  values_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:google.protobuf.ListValue)
}
ListValue::ListValue(const ListValue& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      values_(from.values_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.protobuf.ListValue)
}

void ListValue::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base);
}

ListValue::~ListValue() {
  // @@protoc_insertion_point(destructor:google.protobuf.ListValue)
  SharedDtor();
}

void ListValue::SharedDtor() {
  GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr);
}

void ListValue::ArenaDtor(void* object) {
  ListValue* _this = reinterpret_cast< ListValue* >(object);
  (void)_this;
}
void ListValue::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void ListValue::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListValue& ListValue::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base);
  return *internal_default_instance();
}

void ListValue::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.ListValue)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  values_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListValue::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .google.protobuf.Value values = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(add_values(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 10);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListValue::MergePartialFromCodedStream(
    ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.ListValue)
  for (;;) {
    ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.Value values = 1;
      case 1: {
        if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                input, add_values()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.ListValue)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.ListValue)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListValue::SerializeWithCachedSizes(
    ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.ListValue)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.protobuf.Value values = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->values_size()); i < n; i++) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->values(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.ListValue)
}

::PROTOBUF_NAMESPACE_ID::uint8* ListValue::InternalSerializeWithCachedSizesToArray(
    ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.ListValue)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.protobuf.Value values = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->values_size()); i < n; i++) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->values(static_cast<int>(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.ListValue)
  return target;
}

size_t ListValue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.ListValue)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.protobuf.Value values = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->values_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          this->values(static_cast<int>(i)));
    }
  }

  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListValue::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.ListValue)
  GOOGLE_DCHECK_NE(&from, this);
  const ListValue* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ListValue>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.ListValue)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.ListValue)
    MergeFrom(*source);
  }
}

void ListValue::MergeFrom(const ListValue& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.ListValue)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  values_.MergeFrom(from.values_);
}

void ListValue::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.ListValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListValue::CopyFrom(const ListValue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.ListValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListValue::IsInitialized() const {
  return true;
}

void ListValue::InternalSwap(ListValue* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&values_)->InternalSwap(CastToBase(&other->values_));
}

::PROTOBUF_NAMESPACE_ID::Metadata ListValue::GetMetadata() const {
  return GetMetadataStatic();
}

// @@protoc_insertion_point(namespace_scope)
PROTOBUF_NAMESPACE_CLOSE
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse* Arena::CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< PROTOBUF_NAMESPACE_ID::Struct_FieldsEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE PROTOBUF_NAMESPACE_ID::Struct* Arena::CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Struct >(Arena* arena) {
  return Arena::CreateMessageInternal< PROTOBUF_NAMESPACE_ID::Struct >(arena);
}
template<> PROTOBUF_NOINLINE PROTOBUF_NAMESPACE_ID::Value* Arena::CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Value >(Arena* arena) {
  return Arena::CreateMessageInternal< PROTOBUF_NAMESPACE_ID::Value >(arena);
}
template<> PROTOBUF_NOINLINE PROTOBUF_NAMESPACE_ID::ListValue* Arena::CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::ListValue >(Arena* arena) {
  return Arena::CreateMessageInternal< PROTOBUF_NAMESPACE_ID::ListValue >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>

redpajama_set_name: RedPajamaGithub


China New Year ( happy Spring Festival) would be come up, take our best wishes for you.we would spend our holidays from jan 25 to jan 30 2009,but you can still contact us ,as we have someone on duty!
After our holidays, we would take our best service for you! Get you best price, offer tou top quality.


text:
Oklevucha Native American Church Appeals to the 9th Circuit Court of Appeals for Ceremonial use of Cannabis
I met yesterday in Honolulu with Micheal Rex "Raging Bear" Mooney the Medicine Man for the Oklevucha Native American Church of Hawaii, and his attorney Michael Glenn.
Raging Bear and the Oklevucha Native American Church of Hawaii decided to take an offensive posture instead of the usual defensive strategies we have seen here in Hawaii in the past when the federal government seized the church's sacramental cannabis.
Raging Bear and the Oklevucha Native American Church of Hawaii filed a civil suit in federal district court in the District of Hawaii in July of 2009. The suit seeks injunctive and declaratory relief as well as the return of about one pound of cannabis that had been seized from the church by federal agents.
The defendants include DEA administrator Michele Leonhhart and US Attorney General Eric Holder who fought to keep the case from going to trial. Defendants DEA/U.S. AG Holder filed three motions to dismiss the case. The DEA also well after the lawsuit had been filed destroyed the cannabis.
Federal District Judge Susan Mollway heard and dismissed the case, ruling the government's prohibition and seizure of the churches cannabis did not present an actual controversy that was ripe for review. The judge also ruled she could not order the government to replace the cannabis they destroyed with a similar quantity of cannabis, because " the differences in potency and desirability of various cannabis (sounds like she has smoked some herself) would make awarding substitute cannabis unfeasible".
What? In other words she said the government should give the cannabis back or replace it but they can't figure out how to do it. Raging Bear and the Oklevucha Native American Church of Hawaii appealed the decision last week to the 9th Circuit Court of Appeals in their effort to require the DEA and U.S. Attorney General to protect and preserve their right to use cannabis in traditional religious ritual for spiritual purposes.
Cannabis historically known among North American tribes as Rosa Maria (or Santa Maria) is used by members of the Oklevucha Native American Church in addition to their religious use of peyote. The plaintiffs argue the churches non drug use of this otherwise prohibited herb must be respected, as codified by the American Indian Religious freedom act (42 USC – 1996), which requires the policy of the United States to protect and preserve for American Indians their inherent right of freedom to believe, express, and exercise their traditional religions, including but not limited to use and possession of sacred substances, and the freedom to worship through ceremonials and traditional rites.
It gets even more interesting in that Micheal Rex "Raging Bear" Mooney is the son of James "Flaming Eagle" Mooney' who is also suing the federal government in another religious freedom case on the mainland for the right of non Native American members of the church to use peyote also. Raging Bear's grandfather, Flaming Eagle's father was also a Native American "medicine man" this is a calling and tradition that has run in the family for generations.
The Mooney's have chosen to be proactive.
AP article on James "Flaming Eagle" Mooney's lawsuit.
American Indian church sues feds over peyote use
JENNIFER DOBNER Associated Press
http://www.fox13now.com/news/local/kstu-ap-american-indian-church-sues-feds-over-peyote-use,0,2016987.story
SALT LAKE CITY (AP) — An American Indian church is suing state and federal police and prosecutors over the right of its members to use peyote in religious ceremonies, even if they are not of Indian ancestry.
The lawsuit seeks to block state and federal law enforcement from arresting or bringing criminal charges against church members who "fear reprisal from both state and federal governments for openly practicing their religion," court papers state.
Those cases include the 2000 prosecution of medicine man James "Flaming Eagle" Mooney on multiple felony charges, including drug possession and distribution for giving peyote to church members and others during religious ceremonies.
Mooney's conviction was thrown out by the Utah Supreme Court on appeal. The ruling from justices said an exemption in federal law that allows for peyote use should include all church members regardless of the arbitrary "blood quantum" standard — the primary basis for determining who is a protected American Indian religious practitioner, the lawsuit states.
"It is time that such a basis be abolished in favor of extending full religious freedom and protection to the NAC as a broader based, American religious choice," attorneys for the Oklevueha wrote in court papers.
This is from the Oklevucha Native American Church web site.
http://www.nativeamericanchurch.net/Native_American_Church/NATIVE_AMERICAN_CHURCH.html
The Native American Church represents North and South American indigenous earth based healing spiritual beliefs and practices.
America's indigenous spirituality was first congressionally recognized and signed into law, Dawes Act 1876, by United States President Grant. In 1918, a committee of Oklahoma federally recognized American Native Spiritual leaders, with the assistance of James Mooney writing the By-Laws, Incorporated the Native American Church.
The American Indian Religious Freedom Act (AIRFA), 42 U.S.C. 1978, August 11, 1978, was signed into law by
President Carter and finally with the Amendment to AIRFA,
the Religious Land Use and Institutionalized Persons Act of
2000, signed by President Clinton gives the clear and concise understanding that the Native American Church had been mandated to receive all the protections and rights of the First Amendment since 1918.
We welcome you to experience the spiritual healing powers of our American Native ceremonial heritage.
A Brief History of the Native American Church
by Jay Fikes
http://csp.org/communities/docs/fikes-nac_history.html
American Indian Religious Freedom Act
http://en.wikipedia.org/wiki/American_Indian_Religious_Freedom_Act
http://hawaiinewsdaily.com/2010/12/03/oklevucha-native-american-church-appeals-to-the-9th-circuit-court-of-appeals-for-ceremonial-use-of-cannabis/

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Key value for this row was changed or deleted at the data store. The local row is now deleted Migrating 1.5 million lines of D7,BDE,Paradox to XE2,ADO,MS-SQL.
We have a TDBLookupComboBox that works fine. We provide the user with an ellipsis button so they can add or delete records from the combo box's ListSource table while the combo box is visible.
If the user clicks on the ellipsis, we let them edit the table and then we Refresh the comboboxes datasource, like this:
EditTable.ShowModal; // user edits ListSource.Dataset table
Form1.DBComboBox1.ListSource.DataSet.Refresh

This worked fine in the Paradox world.
In the SQL/ADO world, if the user deletes a record from the ListSource, we get the message on the Refresh statement above:
Key value for this row was changed or deleted at the data store.
The local row is now deleted.

This occurs even if the record the user deleted was not the currently selected item in the combo box.
We don't understand why this is happening now but not in the Paradox version.
Our solution has been (after the user edits) to close and open the ListSource dataset as shown below, but this is clumsy (and we'll have to replicate in almost 100 places we do this kind of thing.)
Here's our current fix:
var
  KeyBeforeUserEdit: Integer;

KeyBeforeUserEdit:= Form1.DBComboBox.KeyValue;
EditTable.ShowModal; // user edits ListSource.Dataset table
Form1.DBComboBox1.ListSource.DataSet.Close;
Form1.DBComboBox1.ListSource.DataSet.Open;
if Form1.DBComboBox1.ListSource.DataSet.Locate('UniqueKey', KeyBeforeUserEdit, []) then
  From1.DBComboBox1.KeyValue := KeyBeforeUserEdit;

Any alternate suggestions or explanations why this is necessary?

A: I can't know for sure what is going on but you may be able to simplify your migration (albeit not good practice) in the following way.
ShowModal is a virtual function so you can override it in the class EditTable belongs to (TEditTable?) providing that you have that source. Within the unit add the Form1 unit to the uses clause in the implementation section (if it is not already there) and add your override as follows
function TEditTable.ShowModal : integer;
var
  KeyBeforeUserEdit: Integer;
begin
  KeyBeforeUserEdit:= Form1.DBComboBox.KeyValue;
  Result := inherited ShowModal; // user edits ListSource.Dataset table
  Form1.DBComboBox1.ListSource.DataSet.Close;
  Form1.DBComboBox1.ListSource.DataSet.Open;
  if Form1.DBComboBox1.ListSource.DataSet.Locate('UniqueKey', KeyBeforeUserEdit, []) then
    From1.DBComboBox1.KeyValue := KeyBeforeUserEdit;
end;

It is a bit of a kludge but may be pragmatic and save a lot of work.

redpajama_set_name: RedPajamaStackExchange


text:
The Scariest Part of 'Get Out' Was The Trueness To Life
by Jordie Davies
Culture, Entertainment, News
SPOILERS AHEAD! Don't @ me.
Over the weekend, Jordan Peele's thriller Get Out scared audiences all over the nation with that age old American horror: anti-Black racism. The premise is simple enough: a white girl, Rose, brings home her Black boyfriend, Chris, to meet her parents in a wealthy, white suburb in upstate New York.
Of course, the film takes a wild turn when it turns out that Rose's parents are the heads of a Black people abduction and re-sale business and Chris is their next target. Rose's dad, a neurosurgeon, and her mom, a hypnotist, are responsible for transplanting white people into the bodies of Black people—subduing their souls in "the sunken place" so that white folks can enjoy what they believe are the "physical advantages" of a Black body.
Get Out is absolutely chilling as scenes of racial discomfort between Chris and Rose's family morph into an opportunity for white people to size Chris up for their various needs: one man wants his body for its ability to play golf; another wishes he had Chris's ability as a photographer.
Certainly, however, none of these people would see themselves as racist—Rose's father "would have voted for Obama for a third term!" Jordan Peele thus reveals the pernicious racism behind white liberals, who may celebrate the Black body, Black music, Black accomplishments, and yet still cannot see Black people as autonomous and human.
RELATED: Lynchings and Lies: Ida B. Wells' Legacy Might be the Answer to Donald Trump
While the crazy plot of Get Out is obviously untenable, the very real fact of white violence and desire for ownership of the Black body is nothing new, and the movie is no more horrifying than the history of lynching and American chattel slavery. Because these sentiments creep along in American political and social institutions, Get Out is all the more disturbing as a fantastical reincarnation of our racial past.
This movie does an excellent job at navigating the strange and humiliating ways that Black men must face interpersonal racism when interacting with white people—and I think an excellent follow up would be exploring the unique challenges that Black women face in these awkward and uncomfortable situations.
In addition, the part I found most terrifying in the movie was not the gore, or the suspense, or the use of symmetry—it was in the final moments of the movie when Chris calls the police and I had to ask myself: will this end like so many other encounters between Black men and police? In this universe where hypnotism and body snatching are the name of the game, things almost got too real for me when faced with the possibility that Chris might not defeat evil after all, that he might be killed for looking suspicious and dangerous.
I was truly scared.
Thankfully, much to my relief, Chris makes it through the film and is saved, not by a white person, but by his goofy friend Ron the TSA agent. Black people are saving Black people in this movie, yelling "Get out!" just as one might yell at a movie screen.
Watch the trailer below:
Photo Credit: YouTube
Get Out, Jordan Peele, racism
Jordie Davies
Jordie Davies is writing for her life (and yours) in Chicago, Illinois. She hails from Eastman, Georgia and enjoys thinking about movement politics, public policy, and justice. Davies is a PhD student in Political Science at the University of Chicago. Her research and writings have appeared at The Century Foundation, the NOW-NYC blog, The Emory Wheel, and Emory University's Black Star Magazine.


Rob Gray had a key steal and scored 33 points, including two free throws with 5 seconds remaining, as No. 21 Houston held off Wichita State 77-74 in an American Athletic Conference Tournament semifinal on Saturday.
Devin Davis made Jumper. Assisted by Galen Robinson Jr..
Rob Gray made Layup. Assisted by Galen Robinson Jr..
Nura Zanna made Layup. Assisted by Corey Davis Jr..
Armoni Brooks made Three Point Jumper. Assisted by Galen Robinson Jr..
Galen Robinson Jr. made Layup. Assisted by Rob Gray.
Markis McDuffie made Three Point Jumper. Assisted by Rauno Nurger.
Conner Frankamp made Layup. Assisted by Shaquille Morris.
Conner Frankamp made Layup. Assisted by Darral Willis Jr..
Landry Shamet made Three Point Jumper. Assisted by Conner Frankamp.
Landry Shamet made Three Point Jumper. Assisted by Rashard Kelly.
Rashard Kelly made Three Point Jumper. Assisted by Austin Reaves.
Darral Willis Jr. made Layup. Assisted by Landry Shamet.
Landry Shamet made Three Point Jumper. Assisted by Darral Willis Jr..
Shaquille Morris made Layup. Assisted by Landry Shamet.
Rashard Kelly made Dunk. Assisted by Shaquille Morris.
Rashard Kelly missed Three Point Jumper.
Shaquille Morris made Dunk. Assisted by Austin Reaves.
Landry Shamet made Layup. Assisted by Rashard Kelly.


text:
3volution
Waterworld : The battle of Shnuggle and Munchkin
Posted on 28th November 2019
Last week, the Intellectual Property Enterprise Court (IPEC) handed down its judgment in relation to a dispute surrounding design rights in baby baths. The decision focuses on how the court will determine that a design possesses individual character and therefore creates a "different overall impression" on the informed user, so that it does not infringe a prior design. As her honour Judge Clarke's judgment is a total of 78 pages, we have done our best to sponge up the decision's information and wash off any unnecessary details to give you a squeaky clean summary of all you need to know about Shnuggle v Munchkin (apologies!).
The case concerned design right infringement of baby baths, in which the defendant (Munchkin (US) and their UK subsidiary, Lindam) were accused of design infringement by the claimant (Shnuggle), for the release of their product, the "Sit & Soak".
Shnuggle claimed both unregistered design rights alongside two registered European designs for their products, "MK1" and "MK2". Munchkin openly admitted that they had produced the "Sit & Soak" after the Shnuggle designs were already on the market, with the intention of producing a Shnuggle-inspired design, with some added Munchkin features. Munchkin relied upon four prior art designs from other competitors which they claimed showed the commonplace design of baby baths.
In making her decision, the Judge first invalidated Shnuggle's MK2 saying that it lacked individual character and failed to give a different overall impression to the previous MK1. In addition to this, she held that the "Sit & Soak" did not infringe the MK1 or any unregistered design rights that Shnuggle claimed in their product.
The decision and the approach of the court in this case carries importance, in that it reinstates the "overall different impression" test from Procter & Gamble Co v Reckitt Benckiser (UK) Ltd [2007] EWCA Civ 936. This test was also illustrated in Dyson v Vax [2011] EWCA Civ 1206, in which Dyson lost its claim of design infringement, as a competitor's similar design was held to produce a different "overall impression".
This Shnuggle v Munchkin judgment reinforces this emphasis on redirecting the focus within registered design infringement, from looking at individual differences between designs, to how a design as a whole creates a different overall impression. As the Judge explained:
"Of course it is easier to perceive similarities and differences to describe them in words. What matters is the overall visual impression arising from a side-by-side comparison of [Shnuggle's design] and the Sit & Soak …the informed user stands back and looks at the two together comparing them with everything in mind that I have mentioned including the prior art".
The courts appear to be adopting the imprecise science of a 'stand back and look' approach more and more when determining infringement. Whilst this may provide some added ease and simplicity to such decisions, you can't help but focus on the subjectivity of such a test. After all, what you may perceive as a similar design, "Joe Bloggs" may perceive as completely different. So where does this leave us? Our view is that the best approach is to look at the designs in question and ask yourself whether you feel they are uncomfortably close. If the answer's yes, you probably need to speak to a friendly IP lawyer.
Legal & Regulatory Info
Costs Information
Copyright ©2018, 3volution Limited.
3volution is the trading name of 3volution Limited a company registered in England and Wales with number 07691759.
3volution Limited is a law firm authorised and regulated by the Solicitors Regulation Authority.
Registered Office: 10 South Parade, Leeds, LS1 5QS. A list of the directors is available at the registered office.
Powered by PinnacleApp


A 4-goal win over Fitzroy at Brunswick Street Oval got the Blues' season off to a bright start.
Goalkickers: T.Carroll 5, G.Hardie 3, J.Gill 2, I.Collins 1, G.Collis 1, B.Cox 1, J.Nicholls 1.
Reports: Injuries: J.James (cork thigh) by B.Varlarmos in second quarter. B.Williams (bruised hip) by P.Falconer in last quarter.
With our previous season's top goal-kicker; Tom Carroll, in good form, the Blues started the season with this emphatic win over Fitzroy at the Brunswick St. oval.
A dominant second quarter where the Blues outscored the Lions by 40 points set up a match winning lead.
An angry third-term clash, which followed after Hardie, of Carlton, had been knocked down when marking near goal, was the turning point in Fitzroy's form.
In the final term Fitzroy inspired by it's captain Kevin Murray out scored the Blues 4.5 - 1.1; despite this revival Carlton ran out winners by 23 points.
Page last modified on Tuesday 22 of October, 2013 08:30:43 AEDT by blueycarlton.
1991 Rd 3 - Madden using his basketball skills on Reynoldson.
2000 Rd 17 - Match Summary Vs Hawthorn.


The company has been involved in the analysis and design of many antennas systems from the VLF to millimeters wavelengths. Several tools have been developed concurrently for these studies. Three of them are commercial products referenced at the software section.
The main tool is ICARE. It is based on the Method of Moments (MoM) for 3D objects. This versatile software is able to simulate all kinds of antennas.
If the considered antenna as a symmetry of revolution (horns, reflectors, lens,...), its 2D counterpart IEROS may be used. The computation time is dramatically reduced with this tool.
If the environment of the antenna has to be taken into account, the size of the problem may be cumbersome. In that case, everything around the antenna may be simulated with IDRA, based on a ray tracer and the Uniform Theory of Diffraction (UTD).
Some examples of antennas studied by IEEA are shown below. Many other examples are available in ICARE examples, IEROS examples and ICARE user guide.