text:
Roll Call Vote 107th Congress - 1st Session
XML Vote Summary
Question: On Passage of the Bill (H.R. 333, as amended )
Vote Number: 236
Vote Date: July 17, 2001, 04:06 PM
Required For Majority: 1/2
Vote Result: Bill Passed
Measure Number: H.R. 333 (Bankruptcy Reform Act of 2001 )
Measure Title: A bill to amend title 11, United States Code, and for other purposes.
Vote Counts:
YEAs82
Not Voting
*Information compiled through Senate LIS by the Senate bill clerk under the direction of the secretary of the Senate
By Senator Name
By Vote Position
By Home State
Alphabetical by Senator Name
Akaka (D-HI), Yea
Allard (R-CO), Yea
Allen (R-VA), Yea
Baucus (D-MT), Yea
Bayh (D-IN), Yea
Bennett (R-UT), Yea
Biden (D-DE), Yea
Bingaman (D-NM), Yea
Bond (R-MO), Yea
Boxer (D-CA), Nay
Breaux (D-LA), Yea
Brownback (R-KS), Nay
Bunning (R-KY), Yea
Burns (R-MT), Yea
Byrd (D-WV), Yea
Campbell (R-CO), Yea
Cantwell (D-WA), Yea
Carnahan (D-MO), Yea
Carper (D-DE), Yea
Chafee (R-RI), Yea
Cleland (D-GA), Yea
Clinton (D-NY), Yea
Cochran (R-MS), Yea
Collins (R-ME), Yea
Conrad (D-ND), Yea
Corzine (D-NJ), Nay
Craig (R-ID), Yea
Crapo (R-ID), Yea
Daschle (D-SD), Yea
Dayton (D-MN), Nay
DeWine (R-OH), Yea
Dodd (D-CT), Nay
Domenici (R-NM), Yea
Dorgan (D-ND), Yea
Durbin (D-IL), Nay
Edwards (D-NC), Yea
Ensign (R-NV), Yea
Enzi (R-WY), Yea
Feingold (D-WI), Nay
Feinstein (D-CA), Yea
Fitzgerald (R-IL), Present
Frist (R-TN), Yea
Graham (D-FL), Yea
Gramm (R-TX), Yea
Grassley (R-IA), Yea
Gregg (R-NH), Yea
Hagel (R-NE), Yea
Harkin (D-IA), Nay
Hatch (R-UT), Yea
Helms (R-NC), Yea
Hollings (D-SC), Yea
Hutchinson (R-AR), Yea
Hutchison (R-TX), Nay
Inhofe (R-OK), Yea
Inouye (D-HI), Yea
Jeffords (I-VT), Yea
Johnson (D-SD), Yea
Kennedy (D-MA), Nay
Kerry (D-MA), Nay
Kohl (D-WI), Yea
Kyl (R-AZ), Yea
Landrieu (D-LA), Yea
Leahy (D-VT), Yea
Levin (D-MI), Yea
Lieberman (D-CT), Yea
Lincoln (D-AR), Yea
Lott (R-MS), Yea
Lugar (R-IN), Yea
McCain (R-AZ), Yea
McConnell (R-KY), Yea
Mikulski (D-MD), Yea
Miller (D-GA), Yea
Murkowski (R-AK), Yea
Murray (D-WA), Yea
Nelson (D-FL), Nay
Nelson (D-NE), Yea
Nickles (R-OK), Yea
Reed (D-RI), Nay
Reid (D-NV), Yea
Roberts (R-KS), Yea
Rockefeller (D-WV), Nay
Santorum (R-PA), Yea
Sarbanes (D-MD), Nay
Schumer (D-NY), Yea
Sessions (R-AL), Yea
Shelby (R-AL), Yea
Smith (R-NH), Not Voting
Smith (R-OR), Yea
Snowe (R-ME), Yea
Specter (R-PA), Yea
Stabenow (D-MI), Yea
Stevens (R-AK), Yea
Thomas (R-WY), Yea
Thompson (R-TN), Yea
Thurmond (R-SC), Yea
Torricelli (D-NJ), Yea
Voinovich (R-OH), Yea
Warner (R-VA), Yea
Wellstone (D-MN), Nay
Wyden (D-OR), Yea
Grouped By Vote Position
YEAs ---82
Akaka (D-HI)
Allard (R-CO)
Allen (R-VA)
Baucus (D-MT)
Bayh (D-IN)
Bennett (R-UT)
Biden (D-DE)
Bingaman (D-NM)
Bond (R-MO)
Breaux (D-LA)
Bunning (R-KY)
Burns (R-MT)
Byrd (D-WV)
Campbell (R-CO)
Cantwell (D-WA)
Carnahan (D-MO)
Carper (D-DE)
Chafee (R-RI)
Cleland (D-GA)
Clinton (D-NY)
Cochran (R-MS)
Collins (R-ME)
Conrad (D-ND)
Craig (R-ID)
Crapo (R-ID)
Daschle (D-SD)
DeWine (R-OH)
Domenici (R-NM)
Dorgan (D-ND)
Edwards (D-NC)
Ensign (R-NV)
Enzi (R-WY)
Feinstein (D-CA)
Frist (R-TN)
Graham (D-FL)
Gramm (R-TX)
Grassley (R-IA)
Gregg (R-NH)
Hagel (R-NE)
Hatch (R-UT)
Helms (R-NC)
Hollings (D-SC)
Hutchinson (R-AR)
Inhofe (R-OK)
Inouye (D-HI)
Jeffords (I-VT)
Johnson (D-SD)
Kohl (D-WI)
Kyl (R-AZ)
Landrieu (D-LA)
Leahy (D-VT)
Levin (D-MI)
Lieberman (D-CT)
Lincoln (D-AR)
Lott (R-MS)
Lugar (R-IN)
McCain (R-AZ)
McConnell (R-KY)
Mikulski (D-MD)
Miller (D-GA)
Murkowski (R-AK)
Murray (D-WA)
Nelson (D-NE)
Nickles (R-OK)
Reid (D-NV)
Roberts (R-KS)
Santorum (R-PA)
Schumer (D-NY)
Sessions (R-AL)
Shelby (R-AL)
Smith (R-OR)
Snowe (R-ME)
Specter (R-PA)
Stabenow (D-MI)
Stevens (R-AK)
Thomas (R-WY)
Thompson (R-TN)
Thurmond (R-SC)
Torricelli (D-NJ)
Voinovich (R-OH)
Warner (R-VA)
Wyden (D-OR)
NAYs ---16
Boxer (D-CA)
Brownback (R-KS)
Corzine (D-NJ)
Dayton (D-MN)
Dodd (D-CT)
Durbin (D-IL)
Feingold (D-WI)
Harkin (D-IA)
Hutchison (R-TX)
Kennedy (D-MA)
Kerry (D-MA)
Nelson (D-FL)
Reed (D-RI)
Rockefeller (D-WV)
Sarbanes (D-MD)
Wellstone (D-MN)
Present - 1
Fitzgerald (R-IL)
Not Voting - 1
Smith (R-NH)
Grouped by Home State
Find Votes
Find out about congressional voting with this How to guide.
Find Bills
Use this guide to help you find the full text of recent bills and resolutions on the Web, or order them from the Senate or House Document Rooms, or you can find them in a library.
You can access legislative information, by bill number or key words, from the Congress.gov website. Information from the present back to the 93rd Congress (1973) is available on Congress.gov.
The Votes page of the Virtual Reference Desk provides voting procedure information, research guides, and essays about historic votes.
Vote Statistics
The Votes category on the Statistics page features facts and figures about votes made by Senators.


It was a beautiful morning yesterday when I went out to do chores. There were bluebirds on the fence and birdsongs in the air.
I snapped this picture of Jolene's cute kid.
It's the fourth snow of March here in southern Virginia.


text:
SHEPARD FAIREY 'By Any Means Necessary' (red) Paster Print
'By Any Means Necessary' by Shepard Fairey, 2007
Red variant.
Offset lithograph Paster on thin, cream Speckletone poster paper.
Open edition; unsigned.
Frank Shepard Fairey (born February 15, 1970) is an American contemporary graphic designer, and illustrator who emerged from the skateboarding scene. He first became known for his "Andre the Giant Has a Posse" (…OBEY…) sticker campaign, in which he appropriated images from the comedic supermarket tabloid Weekly World News. His work became more widely known in the 2008 U.S. presidential election, specifically his Barack Obama "Hope" poster.
The Institute of Contemporary Art, Boston calls him one of today's best known and most influential street artists. His work is included in the collections at The Smithsonian, the Los Angeles County Museum of Art, the Museum of Modern Art in New York, the Museum of Contemporary Art San Diego, the National Portrait Gallery in Washington, and the Victoria and Albert Museum in London.

redpajama_set_name: RedPajamaCommonCrawl


text:
'The Golden Commandment is it…'
Its meaning wasn't complicated and the phrase wasn't trying to imply anything deep, either. So, he only needed to interpret it as he heard it. However, he just couldn't link the original meaning of the phrase to his ability, 'Nine Eyes'. It didn't feel quite right.
Just like the 'right' and 'left' directions, there must be some kind of deeper meaning behind the way it was named like that. He thought about it dozens of times, but could only draw a blank. The deeper he thought about it, the more complicated his head became.
In the end, he spent the whole night without a wink of sleep.
'I can't figure it out.'
Sleep didn't want to visit him. Eventually, Seol got exhausted stirring around the bed wide awake and decided to postpone deciphering the 'Golden Commandment' to another time. He knew better than to force himself to a wrong conclusion here. In any case, he needed to find the proverbial loose string to yank out first if he wanted to unravel this mystery.
There were two ways he could think of that might resolve this quandary:
One, to open up the 'right' direction.
Just like how the 'left' direction was connected to 'lower' direction, the odds of 'upper' direction having a link with the 'right' was high. If he could find what the remaining three colors were, he might be able to narrow down the meaning of the golden color.
'But there are no Ambrosias left….'
Two, the sole remaining method, was to find the truth by experimentation.
Having stared at the ceiling for the entirety of the night, Seol made up his mind and pushed himself off the bed.
The longer one stayed in the Neutral Zone, the harder it became to sense the hours passing by. Not only were there no clocks in this place, but most of the facilities also stayed open 24 hours a day, which kind of made finding a spot without light shining on it a rarity. Only the smartphone he received at the beginning of the Tutorial kept him up with the current date and time.
[05:17 AM]
Around this early morning hour, the always-crowded first-floor plaza would be much quieter.
Wondering if Yun Seora was there, Seol came down to the first floor only to find someone else's familiar back, instead.
'Yi Seol-Ah?'
He was about to call out to greet her but stopped. His half-opened mouth slowly closed shut.
Yi Seol-Ah was in the midst of taking a halting glance at the noticeboard.
It didn't seem as if she was here for the running mission. A Basic difficulty mission could be repeated infinitely, so there was no need to worry about the mission parchments running out. If she was hesitating like that in front of the board, that could only mean that she was thinking of challenging a mission with a difficulty higher than 'Very Easy'.
Her petite shoulders drooped in disappointment. Her head faltered, hinting that she was deeply devastated over something. Seol quickly walked over to her side.
"What should I do now….?"
"Miss Seol-Ah?"
"Heukyahck?!?!"
When he called out to her out of the blue, a rather peculiar scream jumped out of her mouth. She quickly turned around to face Seol. Her shocked expression calmed down quickly after seemingly losing ten years of her life through fright.
"Orabeo-nim!"
"Good morning. You here to try the running mission again? It's been a while since we ran side by side, so how about it?"
"Oh…. Well, shall we?"
She sounded really unwilling. Seol didn't miss the fact that she hesitated ever so slightly before answering him.
"What's wrong? Are you feeling unwell?"
"Oh, no! Not at all. Uhm, it's like, I'm lacking in confidence, something like that? I haven't practiced a lot lately and stuff…."
She blurred the ends of her sentence and smiled awkwardly. Her smile was the usual one that seemed pure and innocent, but today, he picked up the hint of unnaturalness that she couldn't completely conceal. Her always-sunny complexion seemed very haggard as well.
'Mm?'
Seol carefully studied her appearance for a little while and tilted his head.
Now that he had taken a closer look at her, there were a few odd things about her. It had been slightly over a month since classes were awakened, yet her attire remained the same as what she wore during the Tutorial. And having met up with Shin Sang-Ah and Hyun Sangmin earlier on, this oddness came across as quite bizarre to him now.
Yi Seol-Ah's 'aptitude' wasn't bad when he took a peek at her Status Windows. Although it couldn't be called as desirable as 'Brilliant', he did remember seeing the description of 'jack of all trades' or something similar to that in her Aptitude column.
"Have you eaten breakfast yet?"
When he asked her while thinking, 'it can't be, right?', she hurriedly nodded her head.
"O, of course!! I filled up before getti…."
*Growl.*
With the exquisite timing, the loud cry of an empty stomach roared out for everyone to hear. And sure enough, it was not coming from Seol's belly.
"…..If I want to eat, I need to complete missions, you see…."
Quite unlike how she sounded just a minute ago, there was no energy in her voice now. Her pinkish neck slowly reddened up in the shade of sunset. Seol dazedly shifted his gaze over to the noticeboard.
As expected, she wasn't here to do Basic difficulty missions. She was checking out the sections where 'Very Easy' and 'Easy' missions were originally located. Unfortunately, there were no parchments left there. That was because Seol ended up completely exhausting what little remained a few days ago.
—….Yi siblings are constantly helping out Yun Seora…
Suddenly, Seol recalled Hyun Sangmin's words. And right away, it felt like a hammer struck him in the head.
'Ahh…..'
Now he understood the truth.
It wasn't as if the Yi siblings failed to earn enough SPs for themselves. No, it was more like they couldn't as they were trying to look after Yun Seora as well.
In order to complete a mission that paid out enough Survival Points for one to carry on living in the Zone, one would need to get the matching equipment and suitable abilities for one's class. Attempting a mission without those would be akin to throwing your life away.
If one had to lower the difficulty through a sheer lack of choice, then the rewards on offer were too low. Even then, if one continued to persevere and complete them, it'd be possible to amass a few handfuls of points. But for the Yi siblings, those points would have been spent in looking after Yun Seora, instead.
It'd only leave them towards a continuous downward spiral. On top of this, Yi Seol-Ah entered the Neutral Zone with only 46 points to her name. Her brother, Yi Sungjin, had only 114 points. Since they had to support another person with their already struggling finances, their situation must've been in a downward slide for a long time by now.
'Goddamn it.'
Seol's hand clutched his spear tightly.
'….And I had no reason to even do those missions either….'
He resolved himself not to repeat the mistake he made during the treasure hunt, yet he had done it again. He told himself to control his desires, yet, in the end, he thoughtlessly used himself as an example when making decisions.
Only if he paid little more attention. How could he fail so spectacularly to consider the possibility that the situation would be different for other survivors?
From Yi Seol-Ah's perspective, it must have been like him robbing her of the last lifeline she had been depending on.
"….I'm sorry."
Hearing his sudden apology, Yi Seol-Ah's eyes grew wider and wider.
Of course, she was aware of it, too. There was no way she didn't know since the stories about Seol were widespread around the Neutral Zone nowadays.
"N, no! Don't say that!"
"I'm at fault. I'm the one who finished off all the easier missions."
"Orabeo-nim, don't say that. Those mission papers aren't mine to begin with."
"….."
"More importantly, for the last two months, you didn't touch any of those missions, anyways. It's my fault for being lazy and not completing the missions more often, you know. It's my fault instead."
Seeing her trying to console him, his hard-to-describe guilty conscience got heavier by another layer. She said that she had been lazy, but there was no way that could be true. No, it was far more likely that she was struggling desperately to survive.
"I heard that you are looking after Miss Yun Seora."
"Oh, uhm…. T, that is…."
Yi Seol-Ah could only open and shut her mouth repeatedly as if she didn't know what to say. Her expression was asking him, 'How did you find out?'
"How long has it been?"
"Maybe…. After entering the Neutral Zone…. Around ten days after that…."
'So, well over a month, huh.' Seol chuckled out bitterly.
She could've asked him for help during that time, at least once. But she didn't say anything, even when they met a few times to lap the track together. She didn't even show any signs of struggling, either. If no one told him of the Yun Seora situation, he might've never found out what was going on.
Seeing her helplessly lower her gaze, Seol's thoughts became very complicated.
'What should I do now?'
Although he didn't give a definite answer to Kim Hannah, he was planning to help Yun Seora out, anyways. He thought that it wouldn't be such a bad idea to repay Kim Hannah's kindness since he had received lots of benefits from her Gold Mark up until now.
However, helping out the Yi siblings was out of his calculations. Of course, if he began supporting Yun Seora, the burden on the siblings would decrease considerably, but…
But, it was already too late. Others had leapfrogged far ahead of them by now. Never mind catching up to them, could she and her brother even manage to gather 1000 points each before the end of the deadline?
While stewing inside the swirling mess of jumbled up thoughts, Seol got to confirm his disposition being 'Chaotic' one more time. Even though he thought he should aid them somehow, no small part of him didn't want to get involved here and just wanted to concentrate on completing missions, instead.
Should he help them, or not?
Encountering yet another crossroads in his path, Seol closed his eyes to contemplate.
It was then, he suddenly recalled a scene from almost two months ago.
[…Let's run together!!]
He remembered a scene of a girl who came to console him after seeing how shaken he was back then. It was of a girl who'd never forget her savior and tried to repay the favor no matter what.
And then, that Bible verse Kim Hannah left behind entered his thoughts as well.
….Therefore whatever you desire for men to do to you, you shall also do to them.
He then decided to look at things from the siblings' perspective.
What if he ran into a situation similar to what the siblings, or even, Yun Seora were facing? Without a doubt, he'd be wishing for someone to come and help him out right about now.
[I never really thought of those words as altruistic babble, though. No, it's much more closer to 'give-and-take']
Although it was only by a little bit, Seol thought he could understand where Kim Hannah's sentiment was coming from.
Just maybe, there could be a future that might unfold in the way Kim Hannah had been implying - a future, where Seol needed to receive help from someone else. Could this girl in front of him be one of the potential 'someone else'?
No, that didn't matter. What did matter was his feelings on the subject regardless of what might happen in the future. He didn't know why, but he wanted to help her.
He wasn't dealing with a bastard like Kang Seok. Knowing the struggles this kind-hearted and warm girl was going through, he couldn't turn a blind eye anymore.
'It's not like I don't have a wiggle room, is it?'
The moment he decided, Seol opened his eyes and spoke to her.
"Come. Let's run for a while."
Seol and Yi Seol-Ah began jogging on the track.
He completed his portion of the allocated laps first and waited for her to finish. Seeing her slowly inch closer to the finish line, he waved his hands in encouragement. She managed to get to the line, but before crossing it, she collapsed on the floor and began panting heavily. Seeing this, Seol grinned softly.
"It's only 30 laps, you know. I didn't know you were this unfit."
"Doping is not allowed!" (
Yi Seol-Ah protested to the injustice of this situation.
"I'm telling you, it's not doping."
While defending himself, Seol's lips formed a bitter smile. He remembered giving advice that she should buy Competence, while being completely oblivious to her living conditions.
"How do you feel after you ran around for a while?"
"It feels nice."
Yi Seol-Ah smiled brightly on the ground as she regulated her breathing. Even though he forcibly dragged her in here, she wasn't dissatisfied at all.
"Well, then. Should I make you feel even better?"
"…Hm?"
In the Neutral Zone, one could lend out or transfer Survival Points to another. Seol transferred 200 Survival Points from his account to Yi Seol-Ah.
"Uh? Uh, uh?! 200 points?"
"You've successfully cleared a mission, right? You should receive compensation for that."
Seol jokingly said that, but her expression showed how apologetic and at a loss she was.
"Even still…. If you give me so much points, then I…."
Her words only managed to make Seol surprised and flustered instead. Just how difficult had her stay in the Neutral Zone been for her to act like that over measly 200 points?
"What is your brother doing right now?"
"Oh, Sungjin? He should be waking up soon, I think."
"In that case, go have a good breakfast with him. With 200 points, you should be able to enjoy a hearty meal once."
"J, just once?! If I save up, I think we can stretch it out to ten days…."
"No can do. You will spend it all in one go. All 200 points."
Seol resolutely cut her off.
For a short while, she didn't say anything. She simply stared at him with a dazed facial expression as if she hadn't finished processing this event quite yet.
"Once you're done eating, come up to my quarters with your brother. Oh, and by the way, do you know where I can find Miss Yun Seora?"
"O, Orabeo-nim?"
Yi Seol-Ah unsteadily got up from the ground. She still looked like she hadn't been able to tell whether she was in a dream or not.
"But, but, why?"
"Mm…. Well, because I'm grateful to you?"
"A, about what, exactly? I, I haven't done anything…."
Seol sheepishly scratched his cheek as she stammered out.
"What do you mean, you haven't? You ran with me back then, didn't you?"
When looking back, one could say that was indeed the case. Only by running together with her, Seol finally got to realize how weak he was. From that day on, he focused on improving himself like a madman. In a way, it was because of Yi Seol-Ah's intervention that he had begun his intense training regime to get to where he was now.
Yi Seol-Ah couldn't say anything for a little while longer. Only her lips parted and closed several times.
"Orabeo-nim."
She somehow managed to squeeze out a word.
"Yes?"
"Can you… turn around for a second?"
"Sure, why not. But, why?"
"I… want to cry, but it's embarrassing…."
Seol smiled gently. She was probably trying to express how grateful she was in her own way.
"Do what you want."
However, as soon as he turned around, he heard her crying out loudly. His heart nearly jumped out of his mouth in fright, and he quickly looked back, only to find Yi Seol-Ah squatting on the ground again while shedding thick tears of appreciation.
'She's really crying?!'
This time, it was Seol's turn to panic, instead.
After sending Yi Seol-Ah back to her place….
Seol headed off to the fifth floor.
He'd never stopped by this floor before. According to Yi Seol-Ah's explanation, a sizeable lounge could be found there, and Yun Seora spent most of her time in that place.
Seol initially believed that, since that space was called a lounge, the facilities there shouldn't be so bad, but….
"…." (Seol)
….As soon as he arrived there, he had to revise his thoughts immediately.
The circular lounge was indeed rather spacious and open. But there were only a handful of chairs to be found here. He couldn't even begin to call this place a lounge at all.
When he pushed open the glass door and entered, he spotted a lone female figure lying quietly in the far corner of the room. She had a hood covering her head while her body was in a huddle.
Seol heard her cough. It sounded dry and scratchy. Seol placed his palm on the floor, and his body shivered slightly after sensing the coldness coming from the hard surface.
'It's really cold in here.'
She must be in a deep sleep; Seol walked towards her in loud-enough footsteps, but she still showed no signs of movement.
*Zzzz*
While listening to her soft, nearly imperceptible breathing, Seol looked at her face and became utterly speechless.
Yun Seora's appearance too had changed a fair deal since the end of the Tutorial. Unfortunately, it was for the worse.
Her previously pale smooth cheeks were now yellowing and sunken. Her exposed wrist was so thin, he mistakenly thought he was looking at bones. He thought he was looking at a broken doll.
"….Miss Yun Seora?"
Seol called out her name and placed his hand on her shoulder. Her body flinched a little, then.
"Miss Yun Seora."
And when he gently shook her….
"….Ah-ahck!"
Suddenly, she sucked in a heavy breath; as if she was having a nightmare, a strained cry escaped from her lips, and she desperately hid her face with her left hand. She huddled even closer and began shaking like a leaf.
"What the….?"
He thought he looking an abused child trying to not get hit anymore. Seol took a step back in astonishment.
"Are you alright?"
"Euh…. Euhah…!"
"Miss Yun Seora!!"
"Uh, uhm?"
Abruptly, she raised her head. A pair of blurry, unintelligent eyes gazed at Seol.
"Huuua…"
She let off a pained whimper, and her eyes slowly closed again. Her entire body slumped, too. And when he called out to her again, she didn't respond.
'Is she unconscious?'
Her current state seemed too precarious to simply say she fell unconscious.
Seol quickly lifted her up. He only used his arms, yet he could barely feel her weight.
Leaving the fifth-floor lounge, Seol immediately went to his quarters on the tenth. He thought that, since his room restored one's stamina rapidly, simply by being there would help her regain her consciousness.
After carefully laying Yun Seora down on the bed, Seol was overcome with a feeling of helplessness.
Although he did bring her here, he hadn't realized how bad her conditions actually were. Perhaps, that superior officer asking Kim Hannah for favor must've realized that Yun Seora was on the brink, too.
'Let's confirm her status first.'
Seol activated his 'Nine Eyes'.
[Yun Seora's Status Windows]
[1. General Information]
Summoned date: March 16th, 2017
Marking Grade: Silver
Sex/Age: Female/20
Height/Weight: 166.2 cm/48.2 kg
Current condition: Heavily injured
Class: LV. 1 Warrior
Nationality: Republic of Korea (Area 1)
Alias: N/A
[2. Traits]
1. Temperament:
– Indifferent. (She's not easily interested in anything particular.)
– Despair. (Has fallen into despair and gave up on herself, and has not looked after her own body.)
2. Aptitude:
– Brilliant. (Possesses a smart brain as well as good overall talents.)
– Highly observant. (Will carefully analyze and study items and events all around her.)
[3. Physical Level]
Strength: Extreme-Low ↓2
Endurance: Extreme-Low ↓1
Agility: Extreme-Low ↓3
Stamina: Extreme-Low ↓2
Mana: High-Low
Luck: High-Low
Remaining Ability points: 1.
[4. Abilities]
1.Innate Abilities (0)
2. Class Abilities (0)
3. Other Abilities (0)
[5. Level of Cognition]
Depressed (Deeply worried and/or frustrated; lacking in energy) / Despair / Pessimistic (Has a gloomy outlook on her life; is in mourning; is in despair)
"….What the hell?"
Seol's brows furrowed in a deep frown.
Yun Seora's condition, confirmed through her Status Windows, was in a terrible state.


text:
How to Create a Privacy Policy for Facebook Page
Most businesses these days have a Facebook business page where they post content, advertise their products, and engage with their audience. And it's no surprise as it's an amazing marketing platform and a great way of reaching new customers worldwide.
Having a Facebook page however is not that different from having a website and thus, some of the same legal requirements apply.
One of these restrictions includes having a valid privacy policy for your Facebook page. Given how privacy-related concerns are increasingly common these days, it's rather expected.
To avoid having your Facebook page shut down for non-compliance, you should definitely take care of the privacy policy if you haven't done so already.
Expert tip: Take the hassle of writing your own privacy policy away with our privacy policy generator. It will save you hours of work and possible costly legal mistakes.
Do You Need a Privacy Policy for a Facebook Page?
What Are Facebook's Requirements for Privacy Policy?
Is Facebook Responsible for Maintaining Personal Data?
What Are the Rights of Those Who Liked Your Page?
How to Add a Privacy Policy to a Facebook Page?
How to Create a Privacy Policy for a Facebook Page?
As a general rule, a privacy policy serves to inform your users that you are collecting personal information. It should also state how their data will be stored, what you will be doing with it, and specify that you will not be sharing your users' personal information with third parties without their express consent.
A good example of an activity that is typically governed by a privacy policy is digital marketing. Having a big email list of potential and existing customers is very valuable for businesses and allows them to better remarket their audience.
However, in order to get that data, companies often place cookies on their website to track user activity or have a contact form where customers input their email addresses in exchange for a free eBook, newsletter, or some other incentive.
But personal information does not only refer to email addresses. It could also include information such as names, addresses, phone numbers, ID card numbers, social security numbers, or web data (such as IP addresses). In other words, any kind of information that could be used to identify a person.
Any business that processes personal information should have a privacy policy.
This privacy policy should be kept up to date as, in addition to being penalized for not having one, there could be consequences if you collect more data than specified or if you use it in a way that is not explicitly mentioned in the policy.
Most countries have privacy laws in place that require anyone that collects personal information to have a privacy policy. By ignoring these legal requirements you are exposing yourself to consequences, including steep fines. Seeing as websites and Facebook pages attract people from all over the globe, you must make sure that you comply with these as much as you can.
The strictest privacy law in the world would probably be the General Data Protection Regulation (GDPR) which came into effect in May 2018. Its goal is to give users more control over their personal information, streamline privacy laws through the European Union, and punish companies that don't comply with the requirements.
Articles 12 to 14 of the GDPR suggests that any business that operates in Europe or that processes the data of European users must have a concise, transparent, intelligible, and easily accessible privacy notice in place and request express consent from its users before collecting any personal information (if collecting their information on that basis).
Seeing as you could well attract European users to your website or Facebook page and thus process their data without having express knowledge of it, you will want to have a compliant privacy policy in place.
Indeed, the fines that can be imposed under the GDPR are costly. The higher of €20 million or 4% of the global revenue of the organization for serious violations and/or a minimum fine of 2% of the company's global turnover or €10 million (whichever is higher) for smaller offenses.
Facebook itself requires any page that collects personal information to have a privacy policy in place and inform its users, just as a website would.
Here is how this requirement is set out in Facebook's Pages, Groups, and Events Policies:
You will note from the above that there is an addendum specifically aimed at businesses that have customers located in the European Economic Area (EEA) which includes the following countries:
This addendum sets out the respective obligations and responsibilities of both Facebook and the Page Admin. Anyone managing a Facebook Page from any of these countries or that processes data from people located in these countries is subject to this addendum, which forms an integral part of the Pages, Groups, and Events Policy.
That's because Page Insights, which provides Page Admins with general information about the people that visit or like their page, are generated by cookies placed by Facebook.
Here is an extract of Facebook's Cookies Policy:
Facebook also uses cookies when it comes to advertising on its platform, whether it be to determine which ad should be shown and to whom or to measure the performance of a campaign.
While you, as Page Admin, do not have access to the detailed data gathered by Facebook, you do benefit from aggregated Page Insights, which could potentially allow you to identify an individual based on their actions and their "likes" (depending on what they have made public on their profile), especially if you have a small audience.
Through Page Insights, the page owner can notably see the demographics (gender and age), location (countries and cities), and languages used by their fan base.
For that reason, the people that like your Page need to know how their data is collected and used.
In June 2018, soon after the GDPR entered into force, the Court of Justice of the European Union (CJEU) issued a long-awaited decision in the Unabhängiges Landeszentrum für Datenschutz Schleswig-Holstein v Wirtschaftsakademie Schleswig-Holstein GmbH case, which provided some clarity in regards to the responsibilities of data processors when it comes to respecting individual privacy rights.
Facebook's Page Insights Controller Addendum (mentioned in the previous section) was drafted in response to this decision and a statement made by the German Data Protection Authorities (German DPAs) on September 5, 2018, that declared that operating a fan page as offered by Facebook at that time was illegal.
The court, in the decision mentioned above, stated that Facebook Pages Admins and Facebook are considered joint controllers under article 26 of the GDPR and are both responsible for ensuring that the collection and processing of data from page visitors comply with the GDPR. The two parties must decide between themselves how they will share that responsibility and be transparent with their users.
Here is how this shared responsibility is mentioned in Facebook's Page Insights Controller Addendum:
Facebook does assume most of the responsibility when it comes to Page Insights and compliance with the GDPR:
But you, as a Page Admin, also have a role to play:
This means that to comply with the GDPR, you will need to identify in the About section of your Page the data controller (your company) and provide its contact details along with those of your Data Protection Officer, if applicable.
You should also state on which legal basis you are processing Insights Data.
There are only 6 lawful reasons for processing data under article 6 of the GDPR:
The data subject has consented to the processing of their personal data for a specific purpose
It is contractually necessary
It is necessary in order to comply with a legal obligation
It is necessary to protect the vital interests of the data subject or another person
It is necessary for the performance of a task carried out in the public interest or under official authority
It is necessary for the purposes of legitimate interests pursued by the data controller or by a third party
When it comes to tracking actions that your users are performing on your Page using cookies, the legal basis upon which you are collecting data could potentially be consent (which is currently the subject of debate as there is currently no option to add an opt-in on a Facebook page) or legitimate interests (which you would have to elaborate on).
In addition to the above, as a general rule and at a minimum, a privacy policy notice should include the following:
Business name and contact details
Contact details of your data protection officer (if applicable)
Type of information that will be collected from website users
Legal basis for processing data (as mentioned above)
If you are using cookies - how to opt-out and what effect this might have on the user's experience
How the information will be collected and by whom
How the information will be used and if it will be shared with third parties
How you are protecting the information collected from misuse or unauthorized access, how long it will be stored, and if the data will be transferred internationally
The rights of your users in regards to their data
The people that like your Facebook Page have the right to have control over their personal information and, under the GDPR, can ask Facebook to access, rectify, port, delete and object to and restrict processing of their data.
Facebook has taken on the major responsibility of making this data available upon request; your users should simply follow the links above to request access to their personal information.
Should you, as Page Admin, receive a data request from an individual or supervising authority in regards to the processing of Insights data, you must forward it to Facebook and cooperate with them in order to fulfill your obligations as joint controllers under article 26(3) of the GDPR, as the data subject can exercise their rights against the controller of their choice, regardless of the arrangement that was made between both parties.
Note that you do need to have processes in place to manage the data that you collect other than through Page Insights, as this addendum and joint responsibility exclusively refer to the latter.
Now that we have seen why you should have a privacy policy in place on your Facebook page and what it should include, here are step-by-step instructions that you can follow to add it to your Facebook Page:
1. Log in to your Facebook Business Account and navigate to your Business Page.
2. Click on "Edit Page Info" in the left-hand side menu and you will be taken to a new screen.
3. Scroll down to the "Privacy Policy URL" and add a link to the privacy policy on your website in the designated text box.
If you've created a privacy policy using our privacy policy generator, you may link directly to the public URL of your privacy policy.
Creating a compliant privacy policy for your Facebook page may seem daunting. You need to make sure that you include all elements required both by the platform and under the law to protect your business against any claims and hefty fines.
Copying a privacy policy from someone else's Facebook page is not enough as it needs to be tailored to your own activities. It may actually be pretty as it may include clauses that go completely against how you operate yourself. Indeed some websites, such as e-commerce stores, will need to include additional clauses.
To make things easier and much more reliable, you may use our privacy policy generator to create a custom-tailored privacy policy for your Facebook Page.
Over 100,000 customer have used our attorney-drafted privacy policy generator to get compliant in minutes. Don't waste time writing legal documents and avoid common mistakes. Create your privacy policy now.
Our current generators
Cookie consent banner
Get updates on the latest legal requirements and regulations.
Join 10,000+ subscribers
How to Send a DMCA Counter-Notice and Stop False Claims
Limitation of Liability Clause is Something You Cannot Ignore
Save Your Commissions With an Amazon Affiliate Disclosure
Sample Shipping Policy Template and Examples
Acceptable use policy generator
Cookie policy generator
Cookie consent banner plugin
Disclaimer generator
DMCA policy generator
Guest post agreement generator
Privacy policy generator
Refund policy generator
Terms and conditions generator
WebsitePolicies © 2022


Home Articles VIEWPOINT: How expensive is retirement?
VIEWPOINT: How expensive is retirement?
When you're calculating how much capital you need to retire on, take care because the assumptions we use for post-retirement costs may be much different to your current pre-retirement costs. Your basket of goods changes and research in the US has shown that inflation for retirees over the past three decades has been higher than the general CPI.
One thing that won't change is that life will throw up the unexpected during your average 30 years of retirement, just as much as it did in the previous 30 years. Retirement is inevitable – you must decide if it is to be forced or planned. We know it's comfortable only for a few South Africans.
Calculating retirement costs can get very sophisticated and complex. There's CPI and risk-adjusted returns, actuarial life expectancies, lump sums or annuity payouts, tax efficient structures, and all sorts of combinations of these. Alternatively, you can go with one of two tried and tested rules of thumb: either you need 12 times your final annual salary, or a replacement ratio of 70–80% of your income, in each case for 30 years.
In either option, it is a function of how you want to live: it's the personal decisions that count. For instance, we know that houses and cars are the "whales" of our finances, consuming much of our financial resources. Significant questions to pose include: are you looking for an exotic retirement villa and multiple homes, or can you downscale to a smaller, functional home more appropriate to your retirement lifestyle? How many cars will you need to fuel, service, insure and garage? Need they be luxury sedans, campervans, or economical runabouts?
Some of these expenses may disappear or reduce in time, but some will increase. The early years of retirement are typically filled with energy, curiosity and often expensive world travel. However, as one gets older, declining energy and mobility means less travel but higher medical costs, which ultimately are potentially crippling.
I've always been an advocate of a planned and structured approach to investing for retirement. However, we each have a personal view of the lifestyle we aspire to, tempered by affordability and the practicalities of that dream. The numbers are the easy part: I urge you to map your plan with a good coach – but the real challenge is sticking to it.


A bit of a wet morning, with wisps of cloud skirting the hills. In a few weeks time, this blackthorn thicket will have settled back into an unassuming backdrop to the wonderful display of bluebells in Newton Wood. A few early sprigs are already showing. But for now, the spiny blackthorn takes the stage with its early showing of white flowers which appear before its leaves. Hawthorn or "may" on the other hand, with similar small white flowers, blooms after its leaves, a month or so later than blackthorn. Hence the saying "ne'er cast a clout till may be out" which me mam used to say when I didn't want to wear my woolly vest to school. I always thought 'may' referred to the month of May but no, it refers to the hawthorn shrub.
Blackthorn has traditionally been used in witchcraft. Harry Potter tried a wand made of the wood, which he had found when his own wand was broken but it didn't suit him because he had not won it. It is also the traditional wood to make Irish shillelaghs, a staff used for fighting.
But without doubt, the best use of blackthorn is for making sloe gin using the berries of the tree. Pick the sloes after the first frost and leave to soak until Christmas.


The purpose of this study is to test the efficacy of two separate, sequential interventions to promote tobacco cessation/reduction in individuals recently identified with lung nodules. Each intervention will be compared to standard of care. The first intervention will be a personalized message intervention, the second intervention will consist of a biofeedback-based intervention.


text:
using namespace cartesian_controller;
using namespace trajectory_msgs;
using std::vector;
using std::string;

// Floating-point value comparison threshold
const double EPS = 1e-9;

typedef JointTrajectorySegment<trajectory_interface::QuinticSplineSegment<double> > Segment;
typedef vector<Segment>                Trajectory;

TEST(PermutationTest, Permutation)
{
  vector<string> t1(4);
  t1[0] = "A";
  t1[1] = "B";
  t1[2] = "C";
  t1[3] = "D";

  vector<string> t2(4);
  t2[0] = "B";
  t2[1] = "D";
  t2[2] = "A";
  t2[3] = "C";

  typedef vector<unsigned int> PermutationType;
  PermutationType ground_truth(4);
  ground_truth[0] = 2;
  ground_truth[1] = 0;
  ground_truth[2] = 3;
  ground_truth[3] = 1;

  // Mismatching sizes: Return empty permutation vector
  {
    vector<string> t2_bad(1,"A");
    PermutationType perm = internal::permutation(t1, t2_bad);
    EXPECT_TRUE(perm.empty());
  }

  // Mismatching contents: Return empty permutation vector
  {
    vector<string> t2_bad(3,"A");
    PermutationType perm = internal::permutation(t1, t2_bad);
    EXPECT_TRUE(perm.empty());
  }

  // Valid parameters
  {
    PermutationType perm = internal::permutation(t1, t2);
    EXPECT_EQ(ground_truth.size(), perm.size());
    EXPECT_EQ(ground_truth[0], perm[0]);
    EXPECT_EQ(ground_truth[1], perm[1]);
    EXPECT_EQ(ground_truth[2], perm[2]);
    EXPECT_EQ(ground_truth[3], perm[3]);
  }

  // Valid parameters, inverse parameter order yields inverse permutation vector
  {
    PermutationType perm = internal::permutation(t2, t1);
    EXPECT_EQ(ground_truth.size(), perm.size());
    EXPECT_EQ(ground_truth[3], perm[0]);
    EXPECT_EQ(ground_truth[2], perm[1]);
    EXPECT_EQ(ground_truth[1], perm[2]);
    EXPECT_EQ(ground_truth[0], perm[3]);
  }
}

class InitTrajectoryTest : public ::testing::Test
{
public:
  InitTrajectoryTest()
    : points(3)
  {
    // Trajectory message
    points[0].positions.resize(1, 2.0);
    points[0].velocities.resize(1, 0.0);
    points[0].accelerations.resize(1, 0.0);
    points[0].time_from_start = ros::Duration(1.0);

    points[1].positions.resize(1, 4.0);
    points[1].velocities.resize(1, 0.0);
    points[1].accelerations.resize(1, 0.0);
    points[1].time_from_start = ros::Duration(2.0);

    points[2].positions.resize(1, 3.0);
    points[2].velocities.resize(1, 0.0);
    points[2].accelerations.resize(1, 0.0);
    points[2].time_from_start = ros::Duration(4.0);

    trajectory_msg.header.stamp = ros::Time(0.5);
    trajectory_msg.joint_names.resize(1, "foo_joint");
    trajectory_msg.points = points;

    // Current trajectory
    typename Segment::State state[2];

    state[0].position.push_back(0.0);
    state[0].velocity.push_back(0.0);
    state[0].acceleration.push_back(0.0);

    state[1].position.push_back(1.0);
    state[1].velocity.push_back(1.0);
    state[1].acceleration.push_back(1.0);

    curr_traj.push_back(Segment(0.0, state[0],
                                1.0, state[1]));

    curr_traj.push_back(Segment(3.0,  state[1],
                                10.0, state[0])); // This is just junk that should be discarded in the tests
  }

protected:
  // Trajectory message to parse
  vector<JointTrajectoryPoint> points;
  trajectory_msgs::JointTrajectory trajectory_msg;

  // Currently executed trajectory
  Trajectory curr_traj;
};

TEST_F(InitTrajectoryTest, InitException)
{
  // Invalid input should throw an exception
  trajectory_msg.points.back().positions.push_back(0.0); // Inconsistent size in last element
  EXPECT_THROW(initJointTrajectory<Trajectory>(trajectory_msg, trajectory_msg.header.stamp), std::invalid_argument);
}

// Test logic of parsing a trajectory message. No current trajectory is specified
TEST_F(InitTrajectoryTest, InitLogic)
{
  const ros::Time msg_start_time = trajectory_msg.header.stamp;
  const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

  // Empty trajectory message: Return empty trajectory
  {
    const ros::Time time = msg_start_time;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msgs::JointTrajectory(), msg_start_time);
    EXPECT_TRUE(trajectory.empty());
  }

  // Input time is...

  // Before first point: Return full trajectory (2 segments)
  {
    const ros::Time time = msg_start_time;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_EQ(points.size() - 1, trajectory.size());
  }

  // First point: Return partial trajectory (last segment)
  {
    const ros::Time time = msg_start_time + msg_points.begin()->time_from_start;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_EQ(points.size() - 2, trajectory.size());
  }

  // Between the first and second points: Return partial trajectory (last segment)
  {
    const ros::Time time = msg_start_time +
    ros::Duration((msg_points.begin()->time_from_start + (++msg_points.begin())->time_from_start).toSec() / 2.0);
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_EQ(msg_points.size() - 2, trajectory.size());
  }

  // Second point: Return empty trajectory
  {
    const ros::Time time = msg_start_time + (++msg_points.begin())->time_from_start;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_TRUE(trajectory.empty());
  }

  // Between the second and third points: Return empty trajectory
  {
    const ros::Time time = msg_start_time +
    ros::Duration(((++msg_points.begin())->time_from_start + (--msg_points.end())->time_from_start).toSec() / 2.0);
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_TRUE(trajectory.empty());
  }

  // Last point: Return empty trajectory
  {
    const ros::Time time = msg_start_time + (--msg_points.end())->time_from_start;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_TRUE(trajectory.empty());
  }

  // After the last point: Return empty trajectory
  {
    const ros::Time time(msg_start_time + msg_points.back().time_from_start + ros::Duration(1.0));
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
    EXPECT_TRUE(trajectory.empty());
  }
}

// Test logic of parsing a trajectory message. Current trajectory is specified, hence trajectory combination takes place
TEST_F(InitTrajectoryTest, InitLogicCombine)
{
  const ros::Time msg_start_time = trajectory_msg.header.stamp;
  const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;
  InitJointTrajectoryOptions<Trajectory> options;
  options.current_trajectory = &curr_traj;

  // Empty trajectory message: Return empty trajectory
  {
    const ros::Time time = msg_start_time;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msgs::JointTrajectory(), msg_start_time, options);
    EXPECT_TRUE(trajectory.empty());
  }

  // Input time is...

  // Before first point, starting the current trajectory: Return 4 segments: Last of current + bridge + full message
  {
    const ros::Time time(curr_traj[0].startTime());
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_EQ(points.size() + 1, trajectory.size());
  }

  // Before first point: Return 4 segments: Last of current + bridge + full message
  {
    const ros::Time time = msg_start_time;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_EQ(points.size() + 1, trajectory.size());
  }

  // First point: Return partial trajectory, 3 segments: Last of current + bridge + last of message
  {
    const ros::Time time = msg_start_time + msg_points.begin()->time_from_start;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_EQ(points.size(), trajectory.size());
  }

  // Between the first and second points: Same as before
  {
    const ros::Time time = msg_start_time +
    ros::Duration((msg_points.begin()->time_from_start + (++msg_points.begin())->time_from_start).toSec() / 2.0);
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_EQ(msg_points.size(), trajectory.size());
  }

  // Second point: Return partial trajectory, 2 segments: Last of current + bridge (only one point of message made it)
  {
    const ros::Time time = msg_start_time + (++msg_points.begin())->time_from_start;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_EQ(msg_points.size() - 1, trajectory.size());
  }

  // Between the second and third points: Same as before
  {
    const ros::Time time = msg_start_time +
    ros::Duration(((++msg_points.begin())->time_from_start + (--msg_points.end())->time_from_start).toSec() / 2.0);
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_EQ(msg_points.size() - 1, trajectory.size());
  }

  // Last point: Return empty trajectory
  {
    const ros::Time time = msg_start_time + (--msg_points.end())->time_from_start;
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_TRUE(trajectory.empty());
  }

  // After the last point: Return empty trajectory
  {
    const ros::Time time(msg_start_time + msg_points.back().time_from_start + ros::Duration(1.0));
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
    EXPECT_TRUE(trajectory.empty());
  }
}

TEST_F(InitTrajectoryTest, InitValues)
{
  const ros::Time msg_start_time = trajectory_msg.header.stamp;
  const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

  // Input time is before first point: Return full trajectory (2 segments)
  const ros::Time time = msg_start_time;
  Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time);
  ASSERT_EQ(points.size() - 1, trajectory.size());

  // Check all segment start/end times and states
  for (unsigned int i = 0; i < trajectory.size(); ++i)
  {
    const Segment& segment = trajectory[i];
    const JointTrajectoryPoint& p_start = msg_points[i];
    const JointTrajectoryPoint& p_end   = msg_points[i + 1];

    // Check start/end times
    {
      const typename Segment::Time start_time = (msg_start_time + p_start.time_from_start).toSec();
      const typename Segment::Time end_time   = (msg_start_time + p_end.time_from_start).toSec();
      EXPECT_EQ(start_time, segment.startTime());
      EXPECT_EQ(end_time,   segment.endTime());
    }

    // Check start state
    {
      typename Segment::State state;
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(p_start.positions[0],  state.position[0]);
      EXPECT_EQ(p_start.velocities[0], state.velocity[0]);
      EXPECT_EQ(p_start.accelerations[0], state.acceleration[0]);
    }

    // Check end state
    {
      typename Segment::State state;
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(p_end.positions[0],  state.position[0]);
      EXPECT_EQ(p_end.velocities[0], state.velocity[0]);
      EXPECT_EQ(p_end.accelerations[0], state.acceleration[0]);
    }
  }
}

TEST_F(InitTrajectoryTest, InitValuesCombine)
{
  // Before first point: Return 4 segments: Last of current + bridge + full message
  const ros::Time time(curr_traj[0].startTime());
  InitJointTrajectoryOptions<Trajectory> options;
  options.current_trajectory = &curr_traj;

  Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
  ASSERT_EQ(points.size() + 1, trajectory.size());

  // Check current trajectory segment start/end times and states (only one)
  {
    const Segment& ref_segment = curr_traj[0];
    const Segment& segment     = trajectory[0];

    // Check start/end times
    {
      EXPECT_EQ(ref_segment.startTime(), segment.startTime());
      EXPECT_EQ(ref_segment.endTime(),   segment.endTime());
    }

    // Check start state
    {
      typename Segment::State ref_state, state;
      ref_segment.sample(ref_segment.startTime(), ref_state);
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(ref_state.position[0],     state.position[0]);
      EXPECT_EQ(ref_state.velocity[0],     state.velocity[0]);
      EXPECT_EQ(ref_state.acceleration[0], state.acceleration[0]);
    }

    // Check end state
    {
      typename Segment::State ref_state, state;
      ref_segment.sample(ref_segment.endTime(), ref_state);
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(ref_state.position[0],     state.position[0]);
      EXPECT_EQ(ref_state.velocity[0],     state.velocity[0]);
      EXPECT_EQ(ref_state.acceleration[0], state.acceleration[0]);
    }
  }

  // Check bridge trajectory segment start/end times and states (only one)
  {
    const Segment& ref_segment = curr_traj[0];
    const Segment& segment     = trajectory[1];

    const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

    // Segment start time should correspond to message start time
    // Segment end time should correspond to first trajectory message point
    const ros::Time msg_start_time = trajectory_msg.header.stamp;
    const typename Segment::Time start_time = msg_start_time.toSec();
    const typename Segment::Time end_time   = (msg_start_time +  msg_points[0].time_from_start).toSec();

    // Check start/end times
    {
      EXPECT_EQ(start_time, segment.startTime());
      EXPECT_EQ(end_time,   segment.endTime());
    }

    // Check start state. Corresponds to current trajectory sampled at start_time
    {
      typename Segment::State ref_state, state;
      ref_segment.sample(start_time, ref_state);
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(ref_state.position[0],     state.position[0]);
      EXPECT_EQ(ref_state.velocity[0],     state.velocity[0]);
      EXPECT_EQ(ref_state.acceleration[0], state.acceleration[0]);
    }

    // Check end state. Corresponds to first trajectory message point
    {
      typename Segment::State state;
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(msg_points[0].positions[0],     state.position[0]);
      EXPECT_EQ(msg_points[0].velocities[0],    state.velocity[0]);
      EXPECT_EQ(msg_points[0].accelerations[0], state.acceleration[0]);
    }
  }

  // Check all segment start/end times and states (2 segments)
  for (unsigned int traj_it = 2, msg_it = 0; traj_it < trajectory.size(); ++traj_it, ++msg_it)
  {
    const ros::Time msg_start_time = trajectory_msg.header.stamp;
    const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

    const Segment& segment = trajectory[traj_it];
    const JointTrajectoryPoint& p_start = msg_points[msg_it];
    const JointTrajectoryPoint& p_end   = msg_points[msg_it + 1];

    // Check start/end times
    {
      const typename Segment::Time start_time = (msg_start_time + p_start.time_from_start).toSec();
      const typename Segment::Time end_time   = (msg_start_time + p_end.time_from_start).toSec();
      EXPECT_EQ(start_time, segment.startTime());
      EXPECT_EQ(end_time,   segment.endTime());
    }

    // Check start state
    {
      typename Segment::State state;
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(p_start.positions[0],  state.position[0]);
      EXPECT_EQ(p_start.velocities[0], state.velocity[0]);
      EXPECT_EQ(p_start.accelerations[0], state.acceleration[0]);
    }

    // Check end state
    {
      typename Segment::State state;
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(p_end.positions[0],  state.position[0]);
      EXPECT_EQ(p_end.velocities[0], state.velocity[0]);
      EXPECT_EQ(p_end.accelerations[0], state.acceleration[0]);
    }
  }
}

TEST_F(InitTrajectoryTest, JointPermutation)
{
  // Add an extra joint to the trajectory message created in the fixture
  trajectory_msg.points[0].positions.push_back(-2.0);
  trajectory_msg.points[0].velocities.push_back(0.0);
  trajectory_msg.points[0].accelerations.push_back(0.0);

  trajectory_msg.points[1].positions.push_back(-4.0);
  trajectory_msg.points[1].velocities.push_back(0.0);
  trajectory_msg.points[1].accelerations.push_back(0.0);

  trajectory_msg.points[2].positions.push_back(-3.0);
  trajectory_msg.points[2].velocities.push_back(0.0);
  trajectory_msg.points[2].accelerations.push_back(0.0);

  trajectory_msg.joint_names.push_back("bar_joint");

  // No reference joint names: Original message order is preserved
  {
    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, trajectory_msg.header.stamp);

    // Check position values only
    const Segment& segment = trajectory[0];
    typename Segment::State state;
    segment.sample(segment.startTime(), state);
    EXPECT_EQ(trajectory_msg.points[0].positions[0],  state.position[0]);
    EXPECT_EQ(trajectory_msg.points[0].positions[1],  state.position[1]);
  }

  // Reference joint names vector that reverses joint order
  {
    vector<string> joint_names; // Joints are reversed
    joint_names.push_back(trajectory_msg.joint_names[1]);
    joint_names.push_back(trajectory_msg.joint_names[0]);
    InitJointTrajectoryOptions<Trajectory> options;
    options.joint_names = &joint_names;

    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, trajectory_msg.header.stamp, options);

    // Check position values only
    const Segment& segment = trajectory[0];
    typename Segment::State state;
    segment.sample(segment.startTime(), state);
    EXPECT_NE(trajectory_msg.points[0].positions[0],  state.position[0]);
    EXPECT_NE(trajectory_msg.points[0].positions[1],  state.position[1]);
    EXPECT_EQ(trajectory_msg.points[0].positions[0],  state.position[1]);
    EXPECT_EQ(trajectory_msg.points[0].positions[1],  state.position[0]);
  }

  // Reference joint names size mismatch
  {
    vector<string> joint_names;
    joint_names.push_back(trajectory_msg.joint_names[0]);
    InitJointTrajectoryOptions<Trajectory> options;
    options.joint_names = &joint_names;

    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, trajectory_msg.header.stamp, options);
    EXPECT_TRUE(trajectory.empty());
  }

  // Reference joint names value mismatch
  {
    vector<string> joint_names;
    joint_names.push_back(trajectory_msg.joint_names[0]);
    joint_names.push_back("baz_joint");
    InitJointTrajectoryOptions<Trajectory> options;
    options.joint_names = &joint_names;

    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, trajectory_msg.header.stamp, options);
    EXPECT_TRUE(trajectory.empty());
  }
}

TEST_F(InitTrajectoryTest, WrappingSpec)
{
  // Modify trajectory message created in the fixture to wrap around
  const double wrap = 4 * M_PI;
  for (unsigned int i = 0; i < trajectory_msg.points.size(); ++i)
  {
    trajectory_msg.points[i].positions[0] += wrap; // Add wrapping value to all points
  }

  // Before first point: Return 4 segments: Last of current + bridge + full message
  const ros::Time time(curr_traj[0].startTime());
  std::vector<bool> angle_wraparound(1, true);
  InitJointTrajectoryOptions<Trajectory> options;
  options.current_trajectory = &curr_traj;
  options.angle_wraparound      = &angle_wraparound;

  Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
  ASSERT_EQ(points.size() + 1, trajectory.size());

  // Check current trajectory segment start/end times and states (only one)
  {
    const Segment& ref_segment = curr_traj[0];
    const Segment& segment     = trajectory[0];

    // Check start/end times
    {
      EXPECT_EQ(ref_segment.startTime(), segment.startTime());
      EXPECT_EQ(ref_segment.endTime(),   segment.endTime());
    }

    // Check start state
    {
      typename Segment::State ref_state, state;
      ref_segment.sample(ref_segment.startTime(), ref_state);
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(ref_state.position[0],     state.position[0]);
      EXPECT_EQ(ref_state.velocity[0],     state.velocity[0]);
      EXPECT_EQ(ref_state.acceleration[0], state.acceleration[0]);
    }

    // Check end state
    {
      typename Segment::State ref_state, state;
      ref_segment.sample(ref_segment.endTime(), ref_state);
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(ref_state.position[0],     state.position[0]);
      EXPECT_EQ(ref_state.velocity[0],     state.velocity[0]);
      EXPECT_EQ(ref_state.acceleration[0], state.acceleration[0]);
    }
  }

  // Check bridge trajectory segment start/end times and states (only one)
  {
    const Segment& ref_segment = curr_traj[0];
    const Segment& segment     = trajectory[1];

    const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

    // Segment start time should correspond to message start time
    // Segment end time should correspond to first trajectory message point
    const ros::Time msg_start_time = trajectory_msg.header.stamp;
    const typename Segment::Time start_time = msg_start_time.toSec();
    const typename Segment::Time end_time   = (msg_start_time +  msg_points[0].time_from_start).toSec();

    // Check start/end times
    {
      EXPECT_EQ(start_time, segment.startTime());
      EXPECT_EQ(end_time,   segment.endTime());
    }

    // Check start state. Corresponds to current trajectory sampled at start_time
    {
      typename Segment::State ref_state, state;
      ref_segment.sample(start_time, ref_state);
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(ref_state.position[0],     state.position[0]);
      EXPECT_EQ(ref_state.velocity[0],     state.velocity[0]);
      EXPECT_EQ(ref_state.acceleration[0], state.acceleration[0]);
    }

    // Check end state. Corresponds to first trajectory message point
    {
      typename Segment::State state;
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(msg_points[0].positions[0] - wrap, state.position[0]); // NOTE: Wrap used
      EXPECT_EQ(msg_points[0].velocities[0],       state.velocity[0]);
      EXPECT_EQ(msg_points[0].accelerations[0],    state.acceleration[0]);
    }
  }

  // Check all segment start/end times and states (2 segments)
  for (unsigned int traj_it = 2, msg_it = 0; traj_it < trajectory.size(); ++traj_it, ++msg_it)
  {
    const ros::Time msg_start_time = trajectory_msg.header.stamp;
    const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

    const Segment& segment = trajectory[traj_it];
    const JointTrajectoryPoint& p_start = msg_points[msg_it];
    const JointTrajectoryPoint& p_end   = msg_points[msg_it + 1];

    // Check start/end times
    {
      const typename Segment::Time start_time = (msg_start_time + p_start.time_from_start).toSec();
      const typename Segment::Time end_time   = (msg_start_time + p_end.time_from_start).toSec();
      EXPECT_EQ(start_time, segment.startTime());
      EXPECT_EQ(end_time,   segment.endTime());
    }

    // Check start state
    {
      typename Segment::State state;
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(p_start.positions[0] - wrap, state.position[0]); // NOTE: Wrap used
      EXPECT_EQ(p_start.velocities[0],       state.velocity[0]);
      EXPECT_EQ(p_start.accelerations[0],    state.acceleration[0]);
    }

    // Check end state
    {
      typename Segment::State state;
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(p_end.positions[0] - wrap, state.position[0]); // NOTE: Wrap used
      EXPECT_EQ(p_end.velocities[0],       state.velocity[0]);
      EXPECT_EQ(p_end.accelerations[0],    state.acceleration[0]);
    }
  }

  // Reference joint names size mismatch
  {
    std::vector<bool> angle_wraparound(2, true);
    InitJointTrajectoryOptions<Trajectory> options;
    options.current_trajectory = &curr_traj;
    options.angle_wraparound      = &angle_wraparound;

    Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, trajectory_msg.header.stamp, options);
    EXPECT_TRUE(trajectory.empty());
  }
}

// If current trajectory is not specified, but wrapping joints are, then the wrapping spec is ignored
TEST_F(InitTrajectoryTest, IgnoreWrappingSpec)
{
  const ros::Time msg_start_time = trajectory_msg.header.stamp;
  const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

  // Modify trajectory message created in the fixture to wrap around
  const double wrap = 4 * M_PI;
  for (unsigned int i = 0; i < trajectory_msg.points.size(); ++i)
  {
    trajectory_msg.points[i].positions[0] += wrap; // Add wrapping value to all points
  }

  // Before first point: Return 2 segments: Full message
  const ros::Time time(curr_traj[0].startTime());
  std::vector<bool> angle_wraparound(1, true);
  InitJointTrajectoryOptions<Trajectory> options;
  options.angle_wraparound = &angle_wraparound;

  Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
  ASSERT_EQ(points.size() - 1, trajectory.size());

  // Check all segment start/end times and states (2 segments)
  for (unsigned int i = 0; i < trajectory.size(); ++i)
  {
    const Segment& segment = trajectory[i];
    const JointTrajectoryPoint& p_start = msg_points[i];
    const JointTrajectoryPoint& p_end   = msg_points[i + 1];

    // Check start/end times
    {
      const typename Segment::Time start_time = (msg_start_time + p_start.time_from_start).toSec();
      const typename Segment::Time end_time   = (msg_start_time + p_end.time_from_start).toSec();
      EXPECT_EQ(start_time, segment.startTime());
      EXPECT_EQ(end_time,   segment.endTime());
    }

    // Check start state
    {
      typename Segment::State state;
      segment.sample(segment.startTime(), state);
      EXPECT_EQ(p_start.positions[0],  state.position[0]);
      EXPECT_EQ(p_start.velocities[0], state.velocity[0]);
      EXPECT_EQ(p_start.accelerations[0], state.acceleration[0]);
    }

    // Check end state
    {
      typename Segment::State state;
      segment.sample(segment.endTime(), state);
      EXPECT_EQ(p_end.positions[0],  state.position[0]);
      EXPECT_EQ(p_end.velocities[0], state.velocity[0]);
      EXPECT_EQ(p_end.accelerations[0], state.acceleration[0]);
    }
  }
}

// If current trajectory is not specified, but wrapping joints are, then the wrapping spec is ignored
TEST_F(InitTrajectoryTest, GoalHandleTest)
{
  typedef actionlib::ActionServer<control_msgs::FollowJointTrajectoryAction>                  ActionServer;
  typedef ActionServer::GoalHandle                                                            GoalHandle;
  typedef realtime_tools::RealtimeServerGoalHandle<control_msgs::FollowJointTrajectoryAction> RealtimeGoalHandle;
  typedef boost::shared_ptr<RealtimeGoalHandle>                                               RealtimeGoalHandlePtr;

  GoalHandle gh;
  RealtimeGoalHandlePtr rt_goal(new RealtimeGoalHandle(gh));

  // Before first point: Return 4 segments: Last of current + bridge + full message
  const ros::Time time(curr_traj[0].startTime());
  InitJointTrajectoryOptions<Trajectory> options;
  options.current_trajectory = &curr_traj;
  options.rt_goal_handle     = rt_goal;

  Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
  ASSERT_EQ(points.size() + 1, trajectory.size());

  // Segment of current trajectory preserves existing null goal handle
  ASSERT_FALSE(trajectory[0].getGoalHandle());

  // All further segments should be associated to the new goal handle
  for (unsigned int i = 1; i < trajectory.size(); ++i) // NOTE: Start index != 0
  {
    ASSERT_EQ(rt_goal, trajectory[i].getGoalHandle());
  }
}

TEST_F(InitTrajectoryTest, OtherTimeBase)
{
  const ros::Time msg_start_time = trajectory_msg.header.stamp;

  // Options with a different time base
  InitJointTrajectoryOptions<Trajectory> options;
  ros::Duration time_offset(1.0);
  ros::Time other_time_base = msg_start_time + time_offset;
  options.current_trajectory = &curr_traj;
  options.other_time_base = &other_time_base;

  // Before first point: Return 4 segments: Last of current + bridge + full message
  const ros::Time time = msg_start_time;
  Trajectory trajectory = initJointTrajectory<Trajectory>(trajectory_msg, time, options);
  ASSERT_EQ(points.size() + 1, trajectory.size());

  // Check current trajectory segment start/end times (only one). Time offset does NOT apply
  {
    const Segment& ref_segment = curr_traj[0];
    const Segment& segment     = trajectory[0];

    // Check start/end times
    {
      EXPECT_EQ(ref_segment.startTime(), segment.startTime());
      EXPECT_EQ(ref_segment.endTime(),   segment.endTime());
    }
  }

  // Check bridge trajectory segment start/end times and states (only one). Time offset applies to end state only
  {
    const Segment& segment = trajectory[1];

    const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

    // Segment start time should correspond to message start time
    // Segment end time should correspond to first trajectory message point
    const ros::Time msg_start_time = trajectory_msg.header.stamp;
    const typename Segment::Time start_time = msg_start_time.toSec();
    const typename Segment::Time end_time   = (msg_start_time +  msg_points[0].time_from_start).toSec();

    // Check start/end times
    {
      EXPECT_EQ(start_time + time_offset.toSec(), segment.startTime()); // NOTE: offsets applied
      EXPECT_EQ(end_time   + time_offset.toSec(), segment.endTime());
    }
  }

  // Check all segment start/end times and states (2 segments). Time offset does apply
  for (unsigned int traj_it = 2, msg_it = 0; traj_it < trajectory.size(); ++traj_it, ++msg_it)
  {
    const ros::Time msg_start_time = trajectory_msg.header.stamp;
    const vector<JointTrajectoryPoint>& msg_points = trajectory_msg.points;

    const Segment& segment = trajectory[traj_it];
    const JointTrajectoryPoint& p_start = msg_points[msg_it];
    const JointTrajectoryPoint& p_end   = msg_points[msg_it + 1];

    // Check start/end times
    {
      const typename Segment::Time start_time = (msg_start_time + p_start.time_from_start).toSec();
      const typename Segment::Time end_time   = (msg_start_time + p_end.time_from_start).toSec();
      EXPECT_EQ(start_time + time_offset.toSec(), segment.startTime()); // NOTE: offsets applied
      EXPECT_EQ(end_time   + time_offset.toSec(), segment.endTime());
    }
  }
}

int main(int argc, char** argv)
{
  testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

redpajama_set_name: RedPajamaGithub


text:
Южаки — деревня в Верхнекамском районе Кировской области. Входит в состав Кайского сельского поселения.

География
Деревня находится на северо-востоке Кировской области, в северной части Верхнекамского района. Абсолютная высота — 191 метр над уровнем моря.
Расстояние до районного центра (города Кирс) — 87 км.

Население
По данным Второй Ревизии (1748 год) в деревне насчитывалось 18 душ мужского пола (государственные черносошные крестьяне)

По данным всероссийской переписи 2010 года, численность населения деревни составляла 111 человек (мужчины — 54, женщины — 57).

Улицы деревни
 Кирпичная
 Молодёжная
 Северная
 Центральная
 Малаговский переулок

Галерея

Примечания

Населённые пункты Верхнекамского района

redpajama_set_name: RedPajamaWikipedia


Plant some of these now and they'll be up and flowering in 6-8 weeks and the small, elegant flowers with paper-thin petals will fill your house with a delicious scent. They fall into that category of 'forced bulbs' which just means that given certain conditions they'll flower early. In this case they simply need to be kept in a cool, dark place at first so they develop plenty of roots.
Choose a bowl or tall glass vase, if you want a really stylish look, go for empty Diptyque glass candle holders for individual bulbs. Glass is nice because you see some of the roots developing.
Place a layer of shingle or pebbles in the base.
Nestle the bulbs, pointed side up, and close together on the shingle.
Add more shingle leaving the pointy 'nose' of the bulb showing, you can also use bulb fibre at this stage.The plants are quite tall and liable to tip over when they flower if they're not secure, so it's best to use a small shingle or a mix of small and large.
Water the shingle below the bulbs, don't let the bulbs sit in water or they may rot.
When the shoots are 3-5cm tall, bring them out of the dark, but keep them away from bright sunlight until they become green, then move them into bright sun. The ideal spot is bright and sunny, but away from direct heat, like a radiator.
The flowers will soon follow and the sweet scent will fill the room.
Snip the dead flowers off and give the plants a liquid feed, leaving the foliage in place until it turns yellow-brown, this is how the bulb stores energy ready for flowering next year. If you live in the south of England, or have a sheltered spot in your garden, plant them outside. They don't like cold but they may re-grow and it's worth a try.
I'd recommend new bulbs each time for indoor planting.
Bulbs can be bought online from those nice people at Crocus.
image: courtesy of Crocus, ibulb.
Paper-white flowers for Christmas Sow biennial seeds now for hundreds of beautiful flowers next year How to look after plant pots when you're away on holiday. How to dry sage leaves.
Hi Jill: I'm a new subscriber. Have done this for years and then planted them outside, Zone 5 US, and have just put the smaller flowering narcissus in the patio area. They bloom later and are the most fragrant. Working around them is heavenly. Have lots of areas but this one was chosen for later flowering bulbs. Put in an Austin rose bed last year in part of my raised formerly vegetable beds. I'm 82 and live alone so gave up on most of the six 6'x12′ veggie beds. Held 2 out for me and the rest are Austin roses almost. I add each year but still have room for more. Enjoy your column and read it faithfully along with watching BBC Gardener's World. Subscribe to English Garden and now Gardens too but prefer EG. The long winter is when I yearn for these magazines. Have a greenhouse as part of the house and took cuttings for the first time this year from watching the BBC shows. Used to just grow from seed in the Spring only. Live and learn. C.


The Tidewater Chapter of US Lacrosse is recognized this quarter through the Chapter Recognition Program for its phenomenal support of the local lacrosse community through education, programming and strategic growth. Led by President Jim Old and a strong board of 21 volunteers, the Chapter continuously supports the responsible growth of the sport in conjunction with US Lacrosse's mission and vision.
A key focus area of the Chapter has been to deliver education and training opportunities to its constituents. At a minimum, the Tidewater Chapter sponsors both a Level 1 and Level 2 Coach Development clinic. Additionally, the Chapter supports both the Men's and Women's Lacrosse Officials Associations through financial support for training, certification and recruitment of qualified officials.
The Tidewater Chapter has gone above and beyond to provide an array of programs to the local lacrosse community. A stellar and unique program the Chapter has implemented is their Lacrosse Ambassador Program for U15 girls' top student-athletes. Players go through a nomination process and the selected Ambassadors serve as role models for younger players and represent the Chapter at events for a term of one year.
The Chapter also conducts a scholarship program, awarded to one male and one female lacrosse scholar-athlete that will be attending college. To coincide with that, the Chapter holds several free college recruiting seminars for high school players. The seminars stress the importance of grades, how players should contact and interact with potential coaches, and other critical path items.
To support the strategic growth of lacrosse in the Tidewater community, the Chapter is currently partnering with public schools to augment their physical education curriculum and teach lacrosse in schools. The Tidewater Chapter also works closely with the Virginia High School League (VHSL) to promote and grow the game of lacrosse across the entire Tidewater area, seeking to have full varsity status for all public schools within the region.
The Tidewater Chapter continues to impress US Lacrosse and their local lacrosse community with how much they've achieved and implemented in their area. Congratulations to the Chapter, on behalf of US Lacrosse.
To learn more about the Tidewater Chapter, or to get involved, please visit their chapter website or contact President Jim Old ([email protected]).


text:
Everything You Need To Know About Coronavirus
The outbreak of the Coronavirus has put the world at risk. The situation is so severe that a global health emergency has been declared by the World Health organisation. Coronavirus originated in Wuhan, a city in China and since its outbreak the disease has claimed around 361 lives in the country. Coronavirus has transcended the borders of China infecting more than 17,000 people across the world. As per the WHO currently, 27 countries have been affected by the disease. Here is all that you need to know about the disease and how to ensure your safety. What is Coronavirus? The term coronavirus is used for many viruses that cause diseases and illnesses in humans and animals. These include the rather common and non-fatal illnesses like colds. At the other end are the extremely lethal ones such as Severe Acute Respiratory Syndrome and Middle East Respiratory Syndrome. The Coronavirus are zoonotic. This implies that humans get the virus from insects or animals. The new Coronavirus which is currently posing a grave threat can spread from humans to humans. A healthy person can get infected by coming into contact with a person suffering from Coronavirus. When an infected person coughs or sneezes, secretions will be produced. These secretions can make a healthy person extremely ill. Other than this, Coronavirus can also spread through contact like shaking hands with the infected person. Symptoms of Coronavirus To combat the disease it is important to know the symptoms. Some of the common symptoms associated with Coronavirus include cough, fever and breathlessness. If the early symptoms are ignored, the disease can assume alarming proportions. Some of the dangerous ailments that Coronavirus causes are kidney failure, pneumonia and even severe acute respiratory syndrome. If not treated on time the disease can even prove fatal; therefore it is important to keep an eye out for the symptoms. Cure and Treatment At the moment there is no treatment or vaccine that can cure human-to-human Coronavirus. However, you can stay safe by taking certain precautions. Try to avoid contact with people who are suffering from the disease. In case the contact is unavoidable, immediately wash your hands. By maintaining safety standards, you can prevent the spread of the disease. Cover your mouth and nose with a handkerchief when you cough or sneeze, especially in a crowded area. Keep your hands clean by thoroughly washing them. If you are feeling ill, contact the doctor immediately and try to stay at home as much as possible. Though Coronavirus is a deadly disease, but through awareness and by maintaining proper precautions, you can keep safe. In case you have fever or any symptoms of the disease, book an appointment with a doctor. If neglected, the Coronavirus infections can become life-threatening.
Neurosciences (11)
Neurosurgery (8)
Orthopaedics (17)
Oncology (22)
Nephrology (9)
General Medicine (19)
Cardiac Sciences (15)
Vascular & Endovascular Surgery and Interventional Radiology (2)
Kidney Transplant (1)
Dietetics and Nutrition (13)
Emergency Care (2)
Laparoscopic and Bariatric Surgery (6)
Liver Transplantation and Hepatobiliary Surgery (2)
COVID-19 Pandemic : Take Responsibility of your Health
5 Ways To Support Elders With Chronic Diseases During Pandemic
The COVID-19 pandemic has caused much disruption to life as we knew it. One of the most vulnerable groups, affected by the pandemic and the ensuing lo...
How To Manage Mental Health During COVID-19 Pandemic
While taking care of our mental health should be a priority at all times, the current global pandemic makes it imperative to pay close attention to me...
Common Cold, Flu, and Coronavirus: How To Differentiate Between the Three
The outbreak of the COVID-19 pandemic has put the world in a state of flux. COVID-19 is a recently discovered strain of coronavirus which causes a num...
How To Deal With Stress And Anxiety During COVID-19
The COVID-19 pandemic has caused much upheaval around the world. Health and finances of people across the globe have taken a hard hit but the worst af...
Ways To Protect Your Mental Health During Covid-19 Pandemic
The COVID-19 pandemic has brought on many changes in our life. With the looming uncertainties, altered daily routines, economic downturn and informati...
COVID-19 Second Wave
It's been more than a year since we first saw the outbreak of COVID-19. When the pandemic hit, governments all across the world implemented string...
Loss of smell
కరోనా వైరస్ రోజుకో రూపం తీసుకుంటున్నట్లే రోజుకో కొత్త �...
Black Fungus COVID-19
బ్లాక్ భయం కొవిడ్-19 కన్నా దాని పర్యవసానాలే ఎక్కువగా భయ�...
10 Nutritious foods to aid post-COVID recovery
Eating right has never been more important than now with COVID-19 affecting different people across all age groups. While the nations across the world...
Keeping children safe during the second and third wave of COVID-19
Reports from health experts have suggested that children are not at more risk from the third wave of COVID-19. However, it is best to stay cautious fo...
FAQs on Vaccination
Getting the jab brings us a big step closer to normal life before the coronavirus. As vaccination drives continue in full swing across India, booking ...
Effects of COVID-19 on the heart post recovery
Even many weeks after recovery from COVID-19, people have been reporting unfavorable health effects on the body. These symptoms are referred to as &ls...
Corona or Cold Differences Between Omicron or Flu Viruses
జలుబు చేస్తే కరోనాయేనా? చలికాలంలో జలుబు మామూలే. ఒళ్లున�...
Comparing and contrasting the Omicron and Delta Plus variants of COVID-19
Early in 2021, we witnessed the second wave of the COVID-19 pandemic in which the Delta Plus variant created havoc. The variant was first detected in ...
TOUCHING LIVES AND MAKING A DIFFERENCE
What is Preventive Healthcare?
How do Smoking and Drinking Harm Your Health?
Living with Diabetes: An Overall Study of How to Manage Diabetes
Pneumonia in Children
6 Natural Ways to Prevent Diabetes Before it Starts
Important Newborn Care
Superfoods for Your Bones
10 Ways to Improve Vitamin B12


In warehouses, like real estate, location makes all the difference. Product location directly affects productivity, worker safety, and order accuracy. You want fast-moving items in the most accessible locations, heavy items placed to minimize damage, and total storage capacity optimized.
The challenges of smaller orders, SKU proliferation, volatile demand, and shorter order cycle times require nonstop optimization of warehouse space. As distribution operations adapt to requirements driven by omnichannel retail, optimizing slotting becomes more critical to controlling costs and meeting customer expectations.
Because Slotting Optimization determines the best locations to slot your inventory, it increases workforce efficiency, shortens order fulfillment cycles, and maximizes throughput. It also improves customer service by strategically grouping items together for fulfillment and updating placement recommendations based on trends and new product demand.
As a 100 percent, web-enabled application with an advanced math model that calculates optimal slotting, Slotting Optimization considers seasonality, sales trends, and product variations, while maintaining preferred item sequencing and family groupings. Better yet, it is designed with capabilities to handle even the most complex warehouses.
Manhattan Slotting Optimization can increase picking efficiency, reduce replenishment requirements, and maximize throughput by determining the best slot locations for all products in the DC. It's a powerful solution, with a proven track record even in the largest and most complex facilities.
Learn how Under Armour went from 140,000 to 225,000 units shipped a day.
Learn how McKesson addressed high labor costs and accuracy issues.


text:
David Kato Kisule - Inductee
David Kato was born to the Kisule clan in its ancestral village of Nakawala. He first acknowledged his sexual orientation while teaching in Johannesburg. In 2005 he became a founding member of Integrity Uganda, a faith-based LGBT organization led by Bishop Christopher Senyonjo to provide support and counseling for LGBT persons who were increasingly falling victim to anti-gay hatred. In 2007 Kato joined Sexual Minorities Uganda (SMUG), the nation's first and only umbrella group by and for LGBT people. In 2009, several well-funded Evangelical Christians from the United States and Canada traveled to Uganda. The rallies and workshops they staged exacerbated existing anti-gay hysteria. In response, Ugandan MP David Bahati introduced the "Anti-Homosexuality Bill" in 2009, which came to be known as the "Kill the Gays" bill because of its call for the execution of homosexuals. To put a human face on the impending genocide, Kato became the first person to speak openly with the Ugandan media about being a gay man – an act of unprecedented courage for which he was beaten and jailed. He addressed the hostile anti-LGBT climate in his country at the 2010 United Nations Conference on Human Rights, while Uganda's Human Rights Commission "openly joked and snickered." Later that year he was among those whose names, addresses, and photos were published on the front page of the Ugandan tabloid Rolling Stone under the banner "Hang Them!" Kato and two others listed in the article sued the newspaper. In January 2011 the Ugandan High Court Justice ruled against the Rolling Stone's incitement to violence; but it was too late to save him. Days later he was found bludgeoned to death in his home. At Kato's funeral family, friends, and fellow activists wore t-shirts with his photo on the front and the phrase "Aluta continua" (the struggle continues) on the back. In spite of worldwide condemnation, a slightly modified version of the Anti-Homosexuality Bill became law in 2014, plunging LGBT people in Uganda into a living hell – only to be nullified 5 months later on a technicality, which triggered renewed vigilante violence. While politicians continue to wrangle with the consequences of the humanitarian crisis they have created, the martyrdom of David Kato remains an inspiration for LGBT activists everywhere.
Plaque Sponsor
Stoli Group USA
Get the lesson plan PDF
David Kato Lesson PLan584.54 KB
More information Illinois School Code Descriptions Lesson Plan Master Search Page
Black/AA
School codes
SS.H.1.K SS.H.1.1 SS.H.2.1 SS.H.3.1 SS.CV.1.1 SS.H.2.2 SS.H.3.2 SS.CV.2.2 SS.H.1.3 SS.H.2.3 SS.H.3.3 SS.CV.4.3 SS.H.1.4 SS.H.1.5 SS.H.2.5 SS.H.1.6-8.LC SS.H.2.6-8.LC SS.H.3.6-8.LC SS.H.4.6-8.LC SS.H.1.6-8.MdC SS.H.2.6-8.MdC SS.H.3.6-8.MdC SS.H.4.6-8.MdC SS.H.1.6-8.MC SS.H.2.6-8.MC SS.H.3.6-8.MC SS.H.4.6-8.MC SS.H.2.9-12 SS.H.3.9-12 SS.H.5.9-12 SS.H.7.9-12 SS.H.8.9-12 SS.H.9.9-12
Sexual Orientation Gay
Gender Identity Cisgender
Ethnicity Black
Nations Affiliated Uganda South Africa
Era/Epoch Information Age (1970-present)
Field(s) of Contribution
Civics, Government, Politics, & Law
Commemorations & Honors
York United Kingdom Pride Event Commemoration (2011)
Annual David Kato Vision & Voice Award (2012)
CNN Breaking News on the Murder of David Kato Kisule
MSNBC Rachel Maddow Show Report on David Kato Kisule's Death
Call Me Kuchu The Guardian Film Show Interview with the Director Malika Zouhali…
Call Me Kuchu Directors Q&A on Ugandan LGBT Activist David Kato's Death
http://en.wikipedia.org/wiki/David_Kato
http://www.nytimes.com/2011/01/28/world/africa/28uganda.html?_r=0
http://www.huffingtonpost.com/2011/01/27/david-kato-uganda-gay-act_n_814775.html
http://www.guardian.co.uk/world/2011/jan/27/ugandan-gay-rights-activist-murdered
http://www.slate.com/blogs/outward/2015/01/26/david_kato_s_funeral_how_uganda_s_leading_gay_activist_was_laid_to_rest.html
https://www.un.org/africarenewal/web-features/what-david-katos-death-ca…
https://www.britannica.com/biography/David-Kato
https://www.theguardian.com/world/2016/jan/26/uganda-lgbt-groups-david-…
https://www.bbc.com/news/av/world-africa-12302747/david-kato-speaks-in-…
Original Biography Author
Victor Salvo
Biography Edited By
Owen Keehnen
Biography Vetted, Edited, and Certified By
Julian Pepe Onziema
Programmed Director
Sexual Minorities Uganda
The Legacy Project
Image Rights Usage Granted By
Equality Forum
Image Source for Bronze Casting
Resources Coordination
Carrie Maxwell
Nominate Someone → Report A Problem →