text:
Home | News | China
China's Leaders Blamed U.S. 'Incitement,' Conspiracy Theory For Tiananmen Protests
The cover of "The Last Secret," a new book based on previously undisclosed secret Communist Party documents that give the reader a fly-on-the-wall view of what happened in the corridors of power in the immediate aftermath of the Tiananmen crackdown of June 4, 1989.
Three decades ago this week, a top ruling Chinese Communist Party aide to ousted liberal premier Zhao Ziyang was taken into custody, as then supreme leader Deng Xiaoping began the first stages of a crackdown on the 1989 democracy movement in Tiananmen Square.
After People's Liberation Army (PLA) troops quelled the weeks of student-led protests with machine guns and tanks on the night of June 3 and 4, 1989, Bao Tong was detained and given a brief show trial before serving seven years in Beijing's Qincheng Prison for his association with the disgraced Zhao, who died under house arrest at his Beijing home in 2005.
Bao's son Bao Pu remains one of Hong Kong's last independent book publishers, and has just published a book of documents apparently leaked from the highest echelons of Chinese politics in the immediate aftermath of the Tiananmen massacre.
According to Bao Pu, "The Last Secret" is based on previously undisclosed secret Communist Party documents that give the reader a fly-on-the-wall view of what happened in the corridors of power in the immediate aftermath of the crackdown.
The documents show leader after leader rallying behind Deng following the massacre, in which hundreds, possibly thousands, died.
Bao Pu told RFA that such top-level documentation is very hard to find, and adds a new source to the historical record around the events of June 4, 1989.
"It's been 30 years, and there is still a huge blackout around June 4, 1989," he said. "I didn't have anything to add: I just wanted to put the material out there, and let others draw their own conclusions."
"I can't wait another 10 years, and I have no obligation to keep the secrets of the Chinese Communist Party," Bao Pu said.
Zhang Lun, a former participant in the 1989 student movement who is now working as a lecturer at the Université de Cergy-Pontoise in France, said the documents would help establish the truth about who was ultimately responsible for the massacre.
"As someone who lived through the events of 1989, I'd like to express my deep respect for the publisher," Zhang told RFA. "We know a bit more about the June 4 massacre from the people on the ground, but there are a number of black holes in the official account."
"There will only be a true reckoning with the 1989 democracy movement and massacre if more documents are leaked," he said. "There will be a better understanding of who was responsible, too."
'No interest whatsoever in the evidence'
Veteran political journalist Gao Yu tweeted that a June 9, 1989 Politburo meeting during which top leaders pledged loyalty to Deng and the decisions that led to the massacre was likely where the official verdict that the protests were "incited by a small clique of people" and were the result of "an organized conspiracy" was born.
"Those who spoke had no interest whatsoever in the evidence; to a man, they expressed their loyalty to Deng," she wrote.
Peng Zhen, the former chairman of the National People's Congress standing committee, echoed the conspiracy theme in extracts from the book translated and analyzed by Columbia University professor Andrew J. Nathan for Foreign Affairs magazine.
"For some time, an extremely small group of people who stubbornly promoted bourgeois liberalization cooperated with foreign hostile forces to call for revising our constitution," Peng told the meeting in rhetoric that would later be repeated throughout state media for decades to come.
"They schemed to change . . . our country's basic political system and to promote in its place an American-style separation of three powers; they schemed to change our People's Republic of democratic centralism ... into a totally westernized state of capitalist dictatorship," he said.
According to Nathan, the speakers at the Politburo meeting believed that most of the people who had joined in the demonstrations were misguided but not hostile to the regime.
Some claimed that Zhao and his allies had plotted to split the party, overthrow Deng, and democratize China, Nathan wrote, adding that several other speakers supported this idea without showing any evidence for the claim.
Song Renqiong, the vice chair of the party's Central Advisory Commission, blamed the United States in general and the Voice of America in particular for "sticking its hands in" and "spreading rumors and incitement every day."
"Many speakers contended that ideological rot had set in under Hu, Zhao's predecessor," Nathan wrote, adding that the party elders had ousted Hu Yaobang in the hope of stemming a rising tide of liberal thinking, but that Zhao had failed to impose any kind of ideological discipline.
Public memorials and discussions of the events of June 1989 are still largely banned in China, with activists who seek to commemorate the bloodshed often detained, with veteran dissidents placed under police surveillance or detention ahead of each anniversary.
The Tiananmen Mothers victims' group have been writing to China's National People's Congress (NPC) with demands for a change in the official verdict, compensation to victims' families and a public inquiry into the massacre annually for more than 20 years, but have never received any kind of reply, only police restrictions on their movements.
Reported by Ng Yik-tung and Lee Wang-yam for RFA's Cantonese Service, and by Wu Jing for the Mandarin Service. Translated and edited by Luisetta Mudie.
Myanmar Censorship of Party Messages on State Media Draws Fire
US Lawmakers Call For Answers on Zoom Shut-down of Dissident Accounts
Zoom Shuts Down Account of U.S.-based Group After Tiananmen Anniversary
Groups Urge Elections in Myanmar Conflict Zones That Missed Nov. 8 Voting
Reelected Myanmar Leader Faces Calls For Constitutional Change, Peace Drive
Shooting Death of Newly Elected Myanmar Lawmaker Condemned as 'Lawless Act'
New Parties Gain Little Traction in Shadow of Myanmar Ruling Party
Myanmar Ruling Party Follows Election Win With Unity Appeal to Ethnic Parties
Detained Wuhan Citizen Journalist Loses Defense Attorney: Mother
China's Shiny New Press Card Means Total State Control of Media: Journalists
Anonymous Reader
I think it was the Russians who incited the Chinese students to demo.


text:
News Investigative Reporting National
How Legitimate Are Concerns & Trepidation Over New COVID-19 Vaccines?
Posted In: News, Investigative Reporting, National, From Issue 907 By: Robert E Martin
07th January, 2021 0
Compiled by Robert E. Martin
California's health workers are refusing to take the new COVID-19 vaccines - with over half of frontline workers at one hospital unwilling to take it; and between 20% and 50% of workers at other facilities who feel the same, according to the Los Angeles Times.
At St. Elizabeth Community Hospital in Tehama County, fewer than half of the 700 hospital workers eligible for the vaccine were willing to take the shot when it was first offered. At Providence Holy Cross Medical Center in Mission Hills, one in five frontline nurses and doctors have declined the shot.
Roughly 20% to 40% of L.A. County's frontline workers who were offered the vaccine did the same, according to county public health officials.
So many frontline workers in Riverside County have refused the vaccine — an estimated 50% — that hospital and public officials met to strategize how best to distribute the unused doses, according to Public Health Director Kim Saruwatari.
As the Times notes, vaccine doubts among healthcare workers have come as a surprise to researchers, 'who assumed hospital staff would be among those most in tune with the scientific data backing the vaccines.'
But what exactly is that scientific data and how can we be assured of its veracity?
"I'm choosing the risk — the risk of having COVID, or the risk of the unknown of the vaccine," said 31-year-old nurse April Lu of the Providence Holy Cross Medical Center in Los Angeles, who added that she refused to take the vaccine because she wasn't convinced of its safety for pregnant woman. Lu is six months pregnant.
The extent to which healthcare workers are refusing the vaccine is unclear, but reports of lower-than-expected participation rates are emerging around the country, raising concerns for epidemiologists who say the public health implications could be disastrous.
A recent survey by the Kaiser Family Foundation found that 29% of healthcare workers were "vaccine hesitant," a figure slightly higher than the percentage of the general population, 27%.
"Even the name, Operation Warp Speed, draws some concern for people about the rush to push it through," said Dr. Medell Briggs-Malonson, an emergency medicine physician at UCLA Health who has received the vaccine. Still, she urged her colleagues to do the same.
Another healthcare worker, office assistant Nicholas Ruiz at Natividad Medical Center in Salinas, California says that while he interacts with nurses who deal with COVID-19 patients, he's not taking the vaccine either.
"I feel like the perception of the public with healthcare workers is incorrect. They might think we're all informed of all of this. They might think that because we work in this environment," said Ruiz, adding "But I know there's a lot of people that have the same mentality as the public where they're still afraid of getting it."
With Pfizer's messenger-RNA (mRNA) vaccine several legitimate concerns have been voiced.
The links below are to articles that describe the mRNA vaccines in greater detail. All these sources are respected journals or media outlets.
Vaccines against viruses work by introducing an inactive virus or viral particle into the bloodstream where this new foreign particle activates our immune system to create antibodies against this specific virus. If the live virus infects us at some later date, our immune systems are already primed to identify and destroy the dangerous virus.
Messenger RNA was only discovered in 1961. DNA is the set of instructions, the "blueprint", and mRNA is a key part of the cellular machinery that copies a strand of the DNA "blueprint" and builds a protein based on the DNA instructions.
Messenger RNA vaccines don't introduce a viral particle to our immune systems -- they deliver cellular instructions (i.e. a "blueprint") for a viral particle which our cells reproduce once the mRNA enters our cells and delivers the "blueprint" for assembling the viral particle.
Here's a recent description of this mechanism from The Atlantic magazine:
"Moderna works on RNA vaccines--injecting not proteins but the molecules of nucleic acid that encode the instructions for building the proteins. Your cells use RNA to instruct their builders to make proteins all the time; the RNA is like the blueprints or schematics that tell the workers on the factory floor what to build."
COVID-19 Vaccines Are Coming, but They're Not What You Think. (March 2020)
And here's another description by a doctor writing in the independent.co.uk:
This is the hard-to-swallow truth about a future coronavirus vaccine (and yes, I'm a doctor)
"Moderna's messenger RNA vaccine, on the other hand, is completely new and revolutionary to say the least. It uses a sequence of genetic RNA material produced in a lab that, when injected into your body, must invade your cells and hijack your cells' protein-making machinery called ribosomes to produce the viral components that subsequently train your immune system to fight the virus.
In this case, Moderna's mRNA-1273 is programmed to make your cells produce the coronavirus' infamous spike protein that gives the virus its crown-like appearance ('corona' is crown in Latin) for which it is named."
Many in the field see the potential for mRNA to deliver superior vaccines because they can generate T-Cell responses as well as the conventional immune responses to viral particles. They are also easier and cheaper to manufacture, and may be stable at room temperature for a week, unlike the Pfizer vaccine which must be refrigerated at extremely cold temperatures.
The Super Cold Covid Vaccine Distribution Problem
But these are the first mRNA vaccines ever seeking approval for human use, and so there are no long-term studies of what might go wrong down the road. This is a major concern because of the following reasons:
One concern is the possibility that mRNA vaccines could trigger a generalized immune response (interferon, etc.) rather than just a specific immune response to a specific virus (antibodies, etc.).
Our immune system is extremely complex and I make no claim to have a complete understanding of it. That said, the immune system has several levels of response. A conventional vaccine triggers the production of a specific antibody that "recognizes" a specific invader. In other cases, the immune system can activate an "all hands on deck" generalized response.
The danger is that the mRNA could trigger an "all hands on deck" response that could then cascade into autoimmune disorders in which the immune system goes haywire and starts attacking the body's own cells rather than limiting its destructive capabilities to foreign viruses, bacteria, etc.
One doctor's summary encapsulates these concerns.
• Regarding the Pfizer vaccine: it is the first mRNA vaccine ever approved for human use.
If COVID was a 'Steven King' (kills-everyone) virus, sure, go for it--prevent the deaths and take what comes. But mortality is low, acute treatments are improving, transmission is preventable, and the greatest risk now appears to be longer term morbidity.
• mRNA vaccines by the very nature of their components elicit an interferon response that triggers generalized autoimmunity. This may, in fact, be part of the mechanism of longer term morbidity associated with COVID infection.
• Mass introduction of mRNA strands into the populations may indeed reduce acute COVID morbidity and mortality, but how many autoimmune complications will result? No one knows. It's never been done before -- ever.
• It would take years of carefully controlled and limited trials across all ethnic groups to find out. Is the net good from a vaccine that fewer people die up front but a whole lot more folks suffer long term problems on the back end--especially (as seems likely) boosters will be required.
• Shouldn't there be a discussion before 'immunity passports' are mandated? For that matter, shouldn't we discover how long natural immunity lasts before trying to provoke induced immunity?
First, A Vaccine Approval. Then "Chaos and Confusion." (NY Times)
"It has not yet dawned on hardly anybody the amount of complexity and chaos and confusion that will happen in a few short months," said Dr. Gregory Poland, the director of the Vaccine Research Group at the Mayo Clinic.
"I can see people reading a lot into even minor differences that could just be statistical chance," said Natalie Dean, a biostatistician at the University of Florida."
The FDA has set the bar very low for Covid vaccines: the vaccine only has to be effective for 50% of those taking it to be approved. But as noted above, Big Pharma companies have mastered the art of statistical legerdemain that skew results so they look far more conclusive than they actually are.
If you've actually poured over Phase III drug trial results, you find uncertainties have been papered over with statistical analysis techniques. Many medications are approved that only work less than half of the time in the real world.
Another healthcare professional correspondent recommended the book Tainted Truth: The Manipulation of Fact In America as a source for understanding how study data are manipulated to get the desired results.
The danger here is the poorly-informed, politically polarized general public will assume a Covid vaccine is essentially 100% effective like a measles vaccine, when the real-world efficacy might be considerably less certain.
Maybe the vaccines will only work for 75% of the recipients. How will anyone be able to tell if they're one of the 25% for whom the vaccine offers only false confidence?
No one knows how long the immunity generated by these vaccines will last. These two uncertainties generate insurmountable doubts, very likely muddying the waters and making it more difficult to ascertain which vaccines actually work and for how long they offer immunity.
Maybe the mRNA vaccines will fulfill their promise the first time out of the gate, with near-perfect efficacy and long-lasting immunity. The problem is it will take a long time and careful, de-politicized, independently confirmed studies to reach any trustworthy conclusions.
In such a highly polarized, politicized environment, is such a scrupulously objective study even possible? In a system that rewards self-serving statistical analysis and "first to market," a system where Big Pharma insiders reap millions of dollars selling their stock on the PR of happy-talk, is it even possible to have truly objective studies of a vaccine's efficacy and long-term effects?
It seems doubtful. And that's a problem that extends far beyond the unknowns of mRNA vaccines.
Here are some links on mRNA vaccines:
• The Trump Administration Shut a Vaccine Safety Office Last Year. What's the Plan Now?
• mRNA vaccines -- a new era in vaccinology (Nature, January 2018)
• Five things you need to know about: mRNA vaccines (EU Research, April 2020)
• COVID-19 and mRNA Vaccines--First Large Test for a New Approach
• RNA vaccines: an introduction
• An mRNA Vaccine against SARS-CoV-2 -- Preliminary Report
• Immunological considerations for COVID-19 vaccine strategies (Nature)
• The Vaccine Tightrope

redpajama_set_name: RedPajamaCommonCrawl


Next was a visit to the local building supply store where I bought 34, 8" cement blocks. At $75, I figured that these would be the cheapest way to support us and not catch fire. It takes about 3 hours to heat that much water to the ideal temp, which is considered to be 103? F.
But consider the costs of a manufactured "Spa" (they call them spas today): $3,000-$4,000 will buy you a basic modern unit that is ready all the time with hot, filtered and chemical-ed water. For a $300 total investment, a few sticks of firewood created by the sun (free, discarded Oak pallets burn well) and no other cost, you can soak in your hot tub any time you want – as long as you plan ahead, that is.
I could cut a piece of 1" thick white packing foam to seal the top to keep out dirt and use the water again. But it is easier to simply drain the tub onto the yard and garden.
If I still lived in the Midwest, where winters can be very cold, I would probably not use this kind of tub. You can build this hot tub yourself! You can maintain it yourself. You can fix it yourself. In almost every way, my new sun-powered tub is superior to the old redwood tubs of the 70s.
Get have an attached seat so that the going to have a solid-wood.
The opening of your router plate, allowing wood file cabinets and.
More than ten times their thickness, multiple tenons should.
Along with a color change depending on how i will fill in the.


text:
https://celticswire.usatoday.com/2020/04/13/nba-boston-celtics-first-championship-1957-loscutoff-drafted-1955/
On this day, Celtics win 1st championship; Jim Loscutoff drafted
Richard Meek/Sports Illustrated/Getty Images
April 13, 2020 9:48 am ET
On this day in 1957, the Boston Celtics won the first of their 17 championships, a 125-123 double-overtime thriller at the Boston Garden against the St. Louis (now, Atlanta) Hawks.
The Hawks and Celtics had been tied three games to three, and saw rookie and future legendary big man Bill Russell grab a record 32 rebounds, the most-ever for a rookie in a Finals game.
It also saw Tommy Heinsohn, a 6-foot-7 rookie forward, score 37 points and 23 rebounds in the win. The victory sparked a short-lived rivalry between the two clubs that would end in the early 1960s, supplanted by the Los Angeles Lakers.
It is also the date that former Celtic forward Jim Loscutoff was drafted by Boston in the 1955 NBA Draft — third overall — out of Oregon.
Loscutoff would play for the Celtics for nine seasons, averaging 6.2 points and 5.6 rebounds over that stretch. Boston would win six championships while he was on the team, with his bruising defense being a significant factor in many of them.
Jim Loscutoff (1930-2015) The # 3 overall pick (Oregon) in 1955, Loscy won 7 @NBA titles in 9 seasons w/ @Celtics pic.twitter.com/qsnIDPkBLR
— NBA History (@NBAHistory) December 2, 2015
He requested "Loscy", his nickname — not his jersey number, No. 18 — be retired so future Celtics would still be able to wear it in what may someday soon prove a prescient move.
In 1986, Boston ended the 1985-86 season with a 135-107 blowout over the then-New Jersey Nets at Boston Garden.
Larry Bird talks about how the 1986 team went 40-1 in the regular season.
Catch more: https://t.co/dalX1aIzhn pic.twitter.com/pgWgaZiaPn
— Boston Celtics (@celtics) April 3, 2020
This left the Celtics with a 40-1 record at home, a record for both the most home wins and highest home winning percentage (.976) over a season in league history.
It is also the anniversary of three wins since the season of the team's last NBA championship in 2007-08. The first was a 112-102 victory over the New York Knicks that saw both teams sit most of their starters.
Guard Avery Bradley scored a then-career high 20 points and center Glen Davis added 17 points and 8 boards.
Boston also routed the Orlando Magic 120-88 on this date in 2013 as the Celtics veterans did not sit for a late season contest, using the game as a bit of a warm-up instead.
Wing Courtney Lee led the team with 20 points off the bench, and forward Jeff Green had 17 points and 6 rebounds. Kevin Garnett added 14 points and 9 boards, and Paul Pierce 12 points and 8 rebounds as all five starters and seven players hit double figures.
Finally, the Celtics beat the Heat 98-88 on this date in 2016 after coming back from being down 26 points.
Point guard Isaiah Thomas had 21 points and 6 assists to lead the team, Bradley added 17 points and 7 rebounds, and wing Evan Turner contributed 16 points from the bench.
LaVine sweeps Pierce at NBA's HORSE Competition while Billups advances
Ranking the top five small forwards in Boston Celtics history
Ex-Celtics Pierce, Billups tied for 5th-best odds to win HORSE tourney
Boston's Larry Bird was a master of trash talk as well as basketball


Freelancing is a lifestyle. It's about waking up in the morning and being motivated to make your own way. It is about having inspiration to do a client's project at 1 am in the morning and getting it done. Freelancing is hard work and to stay motivated you need to love what you do so the passion will keep you going through the tough times. Below are a list of tips I've gained through freelancing that have gotten me through many tough times.
1. Clients are your partners, friends and ultimately your paycheck. Stay good to them.
2. Charge enough for your work. Value is a perception.
3. Stay on task. Stay organized. Be motivated.
4. Promote yourself. Don't forget that you are a sales person.
5. Use trade when money is not available.
7. Work out of the house and cowork.
8. End your day at a good stopping point. Keep it fresh by moving back and forth between projects.
There are two thoughts on how to finish a project. I tend to "almost" finish a project and stop there. It is usually best to send off that email in the morning when you are fresh and can take a second look at the product. Another suggestion is leaving yourself at a stopping point that is easy to pick up at another time. This may mean leaving a project where you still have a section to finish up, but this allows you to easily get motivated again to start working.
9. Ask for help when you need it. Get opinions. Gain alliances.
10. Take vacations for your business and take vacations away from your business.
I tend to be a workaholic and many people can vouch for that. But one thing that has been good is that I've used my freelancing as a reason for taking vacations. If you are not travelling you may be missing out on one of the best parts of having a flexible schedule and being able to freelance. Don't forget to take your work down the street, outside the state, and overseas. You will see things that will help you in ways unexpectedly. Most importantly, have time away from your business and plan real vacations where you truly get away from the work.
Great article! I found it very helpful and informative. The topics and feelings of difficulty self promoting and seeing ourselves as a sales person is something that I think a lot of freelancers can relate to. I know I do. Thanks for the great article and keep up the amazing work!


text:
Q: Why send algorithm in jwt header In JWT token we send the algorithm type used for signing the JWT in header which is just base64 encoded. Anyone can know the algorithm easily.eg
{ "alg":"HS256" }

Why do we send it to the client as there is no need for the client to know it.
Isn't not sending the algorithm more secure ?

A: HS256 is a signature algorithm so the client (as you have described it) can read the contents of the token anyway, without verifying the signature (unless the content is encrypted separately).
It is a good point that if the receiver of the token needs it then there is no good reason to send a copy of it in the token. In fact it was a criticism of JWT that the algorithm is included in the header and this led to various vulnerabilities in libraries implementing the standard, particularly since it includes a none option for the signature algorithm which allowed the sender of a token to bypass verification completely if the receiver only used the information in the JWT header (see this article for more information). This also details another vulnerability due to weakly typed signing keys.
It's now often recommended that the verifier of a token specify what algorithm it expects it to be using (since in many cases this will be known), rather than rely on the information in the JWT header.
So the problem is not so much about exposing information about the algorithm used (the algorithms should be robust enough for it to make no difference), but about receiving invalid algorithm information which can be used to deceived the receiver of the token into believing it is valid when it is actually forged.

A:
Why do we send it to the client

The obvious, pedantic reason is simply that the standard requires it:

RFC 7515 4.1.1
This Header Parameter MUST be present and MUST be understood and processed by implementations.

While I don't know this for sure as I can't find any IETF meeting notes discussing it, I believe the algorithm is required because of historical precedent. These standards did not just appear over-night, on their own, in the form we know them today. Rather they evolved from the XML dsig technology, where algorithm is specifically sent as part of embedded public keys.

Isn't not sending the algorithm more secure ?

Requiring implementations to change behavior based on client input is questionable. The alg header is client-provided, which means even if it's valid, it can be used to trick the implementation into open failure modes. Two critical vulnerabilities were exploited almost immediately after JWT was standardized, based on allowing the client to direct the server as to the algorithm choice.
Whether this is a design bug or an implementation bug has been debated.
Bottom line, the JOSE family (JWT, JWS, JWE, JWK, and JWA) allows implementors and users to mix and match cryptographic algorithms, which offers a huge array of use-case capability. Unfortunately, it also means users should be extremely picky about their JWT library's handling of client-provided algorithm.
If you're looking into other bearer-token type options, options that don't have this unusual (bizarre?) requirement, check-out:

*

*PASETO

*Macaroons

redpajama_set_name: RedPajamaStackExchange


text:
FINRA Rules
6000. QUOTATION, ORDER, AND TRANSACTION REPORTING FACILITIES
6600. OTC REPORTING FACILITY
6620. Reporting Transactions in OTC Equity Securities and Restricted Equity Securities
6622. Transaction Reporting
The Rule Notices Guidance News Releases FAQs
(a) When and How Transactions are Reported
(1) OTC Reporting Facility Participants shall, as soon as practicable but no later than 10 seconds after execution, transmit to the OTC Reporting Facility, or if the OTC Reporting Facility is unavailable due to system or transmission failure, by telephone to the Operations Department, last sale reports of transactions in OTC Equity Securities executed during normal market hours. Transactions not reported within 10 seconds after execution shall be designated as late.
(2) Transaction Reporting Outside Normal Market Hours
(A) Last sale reports of transactions in OTC Equity Securities executed between 8:00 a.m. and 9:30 a.m. Eastern Time shall be reported as soon as practicable but no later than 10 seconds after execution and be designated with the unique trade report modifier, as specified by FINRA, to denote their execution outside normal market hours.
(B) Last sale reports of transactions in OTC Equity Securities executed between 4:00 p.m. and 8:00 p.m. Eastern Time shall be reported as soon as practicable but no later than 10 seconds after execution and be designated with the unique trade report modifier, as specified by FINRA, to denote their execution outside normal market hours.
(C) Last sale reports of transactions in OTC Equity Securities executed between midnight and 8:00 a.m. Eastern Time shall be reported by 8:15 a.m. Eastern Time on trade date and be designated with the unique trade report modifier, as specified by FINRA, to denote their execution outside normal market hours.
(D) Last sale reports of transactions in OTC Equity Securities executed (i) between 8:00 p.m. and midnight Eastern Time or (ii) on any non-business day (i.e., weekend or holiday) shall be reported the following business day by 8:15 a.m. Eastern Time, be designated "as/of" trades to denote their execution on a prior day and be designated with the unique trade report modifier, as specified by FINRA, to denote their execution outside normal market hours.
(3) Transaction Reporting for Restricted Equity Securities
(A) Last sale reports of transactions in Restricted Equity Securities effected under Securities Act Rule 144A and executed between midnight and 8:00 p.m. Eastern Time shall be reported on the same business day as the transaction.
(B) Last sale reports of transactions in Restricted Equity Securities effected under Securities Act Rule 144A executed (i) between 8:00 p.m. and midnight Eastern Time or (ii) on any non-business day (i.e., weekend or holiday) shall be reported the following business day by 8:00 p.m. Eastern Time and be designated "as/of" trades to denote their execution on a prior day.
(4) Transactions not reported within 10 seconds after execution, or such other time period prescribed by rule, shall be designated as late. Any transaction that is required to be reported on trade date, but is not reported on trade date, must be reported on an "as/of" basis on a subsequent date (T+N) and shall be designated as late. Any transaction that is required to be reported on an "as/of" basis the following business day (T+1), but is not reported T+1, must be reported on a subsequent date (T+N) and shall be designated as late. A pattern or practice of late reporting without reasonable justification or exceptional circumstances may be considered conduct inconsistent with high standards of commercial honor and just and equitable principles of trade in violation of Rule 2010.
(5) Members also shall append the applicable trade report modifiers as specified by FINRA to all last sale reports, including reports of "as/of" trades:
(A) if the trade is executed during normal market hours and it is reported later than 10 seconds after execution;
(B) if the trade is a Seller's Option Trade, denoting the number of days for delivery;
(C) if the trade is a Cash Trade;
(D) if the trade is a Next Day Trade;
(E) if the trade occurs at a price based on an average weighting or another special pricing formula;
(F) if the trade is a Stop Stock Transaction (as defined in Rule 6420) (Note: the transaction report shall include both the time of execution of the trade and the time at which the member and the other party agreed to the Stop Stock Price; if the Stop Stock Transaction is executed and reported within 10 seconds of the time the member and the other party agree to the Stop Stock Price, the designated modifier shall not be appended and only the time of execution of the trade shall be reported);
(G) if the transaction report reflects a price different from the current market when the execution price is based on a prior reference point in time (Note: the transaction report shall include both the time of execution of the trade and the prior reference time; if the trade is executed and reported within 10 seconds from the prior reference point in time, the designated modifier shall not be appended and only the time of execution of the trade shall be reported); and
(H) to identify pre-opening and after-hours trades (executed between 8:00 a.m. and 9:30 a.m. Eastern Time or between 4:00 p.m. and 8:00 p.m. Eastern Time) reported more than 10 seconds after execution.
To the extent that any of the modifiers required by this Rule conflict, FINRA shall provide guidance regarding the priorities among modifiers and members shall report in accordance with such guidance, as applicable.
(6) The OTC Reporting Facility will append the appropriate modifier to indicate that a trade was executed outside normal market hours or that a report was submitted late to the OTC Reporting Facility, where such report contains the time of execution, but does not contain the appropriate modifier.
(7) To identify pre-opening and after-hours trades in OTC Equity Securities reported late, the OTC Reporting Facility will convert to the late modifier, as applicable, on any pre-opening or after-hours report submitted to the OTC Reporting Facility more than 10 seconds after execution.
(8) All members shall report as soon as practicable to the Market Regulation Department on Form T, last sale reports of transactions in OTC Equity Securities or Restricted Equity Securities for which electronic submission to the OTC Reporting Facility is not possible (e.g., the ticker symbol for the security is no longer available or a market participant identifier is no longer active). Transactions that can be reported to the OTC Reporting Facility, whether on trade date or on a subsequent date on an "as/of" basis (T+N), shall not be reported on Form T.
(b) Which Party Reports Transaction
(1) In transactions between two members, the executing party shall report the transaction.
(2) In transactions between a member and a non-member or customer, the member shall report the transaction.
For purposes of this paragraph (b), "executing party" shall mean the member that receives an order for handling or execution or is presented an order against its quote, does not subsequently re-route the order, and executes the transaction. In a transaction between two members where both members may satisfy the definition of executing party (e.g., manually negotiated transactions via the telephone), the member representing the sell-side shall report the transaction, unless the parties agree otherwise and the member representing the sell-side contemporaneously documents such agreement.
(c) Information To Be Reported
Each last sale report shall contain the following information:
(1) Symbol of the OTC Equity Security or Restricted Equity Security;
(2) Number of shares;
(3) Price of the transaction as required by paragraph (d) below;
(4) A symbol indicating whether the transaction is a buy, sell or cross, and if applicable, sell short; and
(5) The time of execution expressed in hours, minutes, and seconds based on Eastern Time, unless another provision of FINRA rules requires that a different time must be included on the report.
(d) Procedures for Reporting Price, Volume, Capacity and Identification of Other Members
Members that are required to report pursuant to paragraph (b) above shall transmit last sale reports for all purchases and sales in OTC Equity Securities and Restricted Equity Securities in the following manner:
(1) Reporting Agency Transactions
For agency transactions, report the number of shares and the price excluding the commission charged.
(2) Reporting Dual Agency Transactions
For dual agency transactions, report the number of shares only once, and report the price excluding the commission charged.
(3) Reporting Principal and Riskless Principal Transactions
(A) For principal transactions, except as provided in subparagraph (B) hereof, report each purchase and sale transaction separately and report the number of shares and the price. For principal transactions that are executed at a price that includes a mark-up, mark-down or service charge, the price reported shall exclude the mark-up, mark-down or service charge. Such reported price shall be reasonably related to the prevailing market, taking into consideration all relevant circumstances including, but not limited to, market conditions with respect to the OTC Equity Security, the number of shares involved in the transaction, the published bids and offers with size displayed in any inter-dealer quotation system at the time of the execution (including the reporting firm's own quotation), the cost of execution and the expenses involved in clearing the transaction.
(B) Exception: A "riskless" principal transaction in which a member, after having received an order to buy a security, purchases the security as principal at the same price to satisfy the order to buy or, after having received an order to sell, sells the security as principal at the same price to satisfy the order to sell, shall be reported as one transaction in the same manner as an agency transaction, excluding the mark-up or mark-down, commission-equivalent, or other fee. Alternatively, a member may report a riskless principal transaction by submitting the following report(s) to the OTC Reporting Facility:
(i) The member with the obligation to report the transaction pursuant to paragraph (b) above must submit a last sale report for the initial leg of the transaction.
(ii) Regardless of whether a member has a reporting obligation pursuant to paragraph (b) above, the firm must submit, for the offsetting, "riskless" portion of the transaction, either:
a. a clearing-only report with a capacity indicator of "riskless principal," if a clearing report is necessary to clear the transaction; or
b. a non-tape, non-clearing report with a capacity indicator of "riskless principal," if a clearing report is not necessary to clear the transaction.
SELL as a principal 100 shares to another member at 40 to fill an existing order;
BUY as principal 100 shares from a customer at 40 minus a mark-down of $12.50;
REPORT 100 shares at 40 by submitting to the OTC Reporting Facility either a single trade report marked with a "riskless principal" capacity indicator or by submitting the following reports:
(1) where required by this Rule, a tape report marked with a "principal" capacity indicator; and
(2) either a non-tape, non-clearing report or a clearing-only report marked with a "riskless principal" capacity indicator.
(4) Identification of Other Members for Agency and Riskless Principal Transactions
Any member that has a reporting obligation pursuant to paragraph (b) above and is acting in a riskless principal or agency capacity on behalf of one or more other members shall submit to FINRA one or more non-tape (either non-tape, clearing-only or non-tape, non-clearing) report(s) identifying such other member(s) as a party to the transaction, if such other member(s) is not identified on the initial trade report submitted to FINRA or a report submitted to FINRA pursuant to Rule 6622(d)(3)(B) for the offsetting leg of a riskless principal transaction. Nothing in this Rule 6622(d)(4) shall negate or modify the riskless principal transaction reporting requirements set forth in Rule 6622(d)(3)(B).
Example #1:
Member A, as agent or riskless principal on behalf of Member B, BUYS 100 shares from Member C at 40 (no mark-down included)
Member A has the reporting obligation under Rule 6622(b)
TAPE REPORT 100 shares at 40 By Member A between Member A and Member C
NON-TAPE REPORT 100 shares at 40 By Member A identifying Member B
Example #2A:
Member A MATCHES, as agent, the orders of Member B and Member C for 100 shares at 40
TAPE REPORT 100 shares at 40 By Member A between Member A and Member B (or Member C)
NON-TAPE REPORT 100 shares at 40 By Member A identifying Member C (or Member B)
Example #2B:
TAPE REPORT a CROSS of 100 shares at 40 By Member A
NON-TAPE REPORT 100 shares at 40 By Member A identifying Member B and
NON-TAPE REPORT 100 shares at 40 By Member A identifying Member C
Member A, as agent or riskless principal on behalf of Member B, BUYS 100 shares on a foreign exchange at 40
DO NOT TAPE REPORT this leg if reported to foreign exchange
NO NON-TAPE REPORT required; however, Member A may submit a NON-TAPE REPORT as between Member A and Member B
(e) Reporting Requirements For Certain Transactions and Transfers of Securities
(1) The following shall not be reported to the OTC Reporting Facility:
(A) transactions that are part of a primary distribution by an issuer or a registered secondary distribution (other than "shelf distributions") or of an unregistered secondary distribution; for purposes of this subparagraph, the term "distribution" has the meaning set forth under Rule 100 of SEC Regulation M;
(B) transactions made in reliance on Section 4(2) of the Securities Act;
(C) transactions reported on or through an exchange;
(D) transfers of securities made pursuant to an asset purchase agreement (APA) that is subject to the jurisdiction and approval of a court of competent jurisdiction in insolvency matters, provided that the purchase price under the APA is not based on, and cannot be adjusted to reflect, the current market prices of the securities on or following the effective date of the APA; and
(E) the transfer of equity securities for the sole purpose of creating or redeeming an instrument that evidences ownership of or otherwise tracks the underlying securities transferred (e.g., an American Depositary Receipt or exchange-traded fund).
(2) The following shall not be reported to the OTC Reporting Facility for publication purposes, but shall be reported for regulatory transaction fee assessment purposes under Rule 7330(g):
(A) Transactions where the buyer and seller have agreed to trade at a price substantially unrelated to the current market for the security;
(B) Purchases or sales of securities effected upon the exercise of an option pursuant to the terms thereof or the exercise of any other right to acquire securities at a pre-established consideration unrelated to the current market; and
(C) Transfers of proprietary securities positions where the transfer (1) is effected in connection with a merger or direct or indirect acquisition and (2) is not in furtherance of a trading or investment strategy. Members must provide FINRA at least three business days advance written notice of their intent to use this exception, including the basis for their determination that the transfer meets the terms of the exception.
(f) Reporting Cancelled and Reversed Trades
(1) Obligation and Party Responsible for Reporting Cancelled and Reversed Trades
With the exception of trades cancelled in accordance with the Rule 11890 Series, members shall report to the OTC Reporting Facility the cancellation or reversal of any trade previously submitted to the OTC Reporting Facility. The member responsible under Rule 6622 for submitting the original trade report shall submit the cancellation or reversal report in accordance with the procedures set forth in paragraphs (f)(2), (3) and (4).
(2) Deadlines for Reporting Cancelled and Reversed Trades in OTC Equity Securities
(A) For trades executed between 9:30 a.m. and 4:00 p.m. Eastern Time and cancelled at or before 4:00 p.m. on the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation as soon as practicable but no later than 10 seconds after the time the trade is cancelled.
(B) For trades executed between 9:30 a.m. and 4:00 p.m. Eastern Time and cancelled after 4:00 p.m., but before 8:00 p.m. on the date of execution, the member responsible under paragraph (f)(1) shall use its best efforts to report the cancellation not later than 8:00 p.m. on the date of execution, and otherwise it shall report the cancellation on the following business day by 8:00 p.m.
(C) For trades executed between 9:30 a.m. and 4:00 p.m. Eastern Time and cancelled at or after 8:00 p.m. on the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation on the following business day by 8:00 p.m.
(D) For trades executed outside the hours of 9:30 a.m. to 4:00 p.m. Eastern Time and cancelled prior to 8:00 p.m. on the date of execution, the member responsible for reporting under paragraph (f)(1) shall report the cancellation by 8:00 p.m.
(E) For trades executed outside the hours of 9:30 a.m. to 4:00 p.m. Eastern Time and cancelled at or after 8:00 p.m. on the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation on the following business day by 8:00 p.m.
(F) For any trade cancelled or reversed on any date after the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation (or reversal) (i) by 8:00 p.m. on the date of cancellation (or reversal) if the trade is cancelled (or reversed) before 8:00 p.m., or (ii) by 8:00 p.m. on the following business day if the trade is cancelled (or reversed) at or after 8:00 p.m.
(G) For purposes of determining the deadline by which a trade cancellation (or reversal) must be reported to the OTC Reporting Facility pursuant to paragraph (f) of this Rule, the term "cancelled" (or "reversed," as applicable) shall mean the time at which (i) the member with the reporting responsibility informs its contra party, or is informed by its contra party, that a trade is being cancelled (or reversed), (ii) the member with the reporting responsibility and its contra party agree to cancel (or reverse) a trade if neither party can unilaterally cancel (or reverse) the trade, or (iii) the member with the reporting responsibility takes an action to cancel (or reverse) the trade on its books and records, whichever event occurs first.
(3) Deadlines for Reporting Cancelled and Reversed Trades in Restricted Equity Securities
(A) For trades previously submitted to the OTC Reporting Facility and cancelled before 8:00 p.m. Eastern Time on the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation by 8:00 p.m.
(B) For trades cancelled at or after 8:00 p.m. Eastern Time on the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation on the following business day by 8:00 p.m.
(C) For any trade cancelled or reversed on any date after the date of execution, the member responsible under paragraph (f)(1) shall report the cancellation or reversal
(i) by 8:00 p.m. on the date of cancellation if the trade is cancelled before 8:00 p.m., or
(ii) by 8:00 p.m. on the following business day if the trade is cancelled at or after 8:00 p.m.
(4) When submitting a report of a reversal to the OTC Reporting Facility, members must identify the original report of the previously submitted trade by including the original report date and the control number assigned by the OTC Reporting Facility to the original trade report.
(g) Transactions in Foreign Equity Securities
(1) For purposes of this paragraph, the term "foreign equity security" means any OTC Equity Security that is issued by a corporation or other entity incorporated or organized under the laws of any foreign country.
(2) Transactions in foreign equity securities shall be reported to the OTC Reporting Facility unless:
(A) the transaction is executed on and reported to a foreign securities exchange; or
(B) the transaction is executed over the counter in a foreign country and is reported to the regulator of securities markets for that country.
(h) A member may agree to allow another member to report and lock-in trades on its behalf, if both parties have completed an agreement to that effect (a "give up agreement") as specified by FINRA and submitted it to the OTC Reporting Facility. However, the member with the reporting obligation remains responsible for the transaction submitted on its behalf. Further, both the member with the reporting obligation and the member submitting the trade to the OTC Reporting Facility are responsible for ensuring that the information submitted is in compliance with all applicable rules and regulations.
• • • Supplementary Material: --------------
.01 For purposes of reporting secondary market transactions in non-exchange-listed DPP securities pursuant to this Rule 6622, the following definitions shall apply. "Date of execution" means the date when the parties to a transaction in a DPP have agreed to all of the essential terms of the transaction, including the price and number of the units to be traded. "Time of execution" means the time when the parties to a transaction in a DPP have agreed to all of the essential terms of the transaction, including the price and number of the units to be traded.
.02 Members that would otherwise have the trade reporting obligation under paragraph (b) of this Rule must provide to FINRA notice that they are relying on the exception from trade reporting under paragraph (e)(1)(A) of this Rule for transactions that are part of an unregistered secondary distribution. For each transaction that is part of the unregistered secondary distribution and not trade reported, the member must provide the following information to FINRA: security name and symbol, execution date, execution time, number of shares, trade price and parties to the trade. Such notice and information must be provided no later than three (3) business days following trade date and in such form as specified by FINRA. If the trade executions will occur over multiple days, then initial notice and available information must be provided no later than three (3) business days following the first trade date and final notice and information must be provided no later than three (3) business days following the last trade date. The member must retain records sufficient to document the basis for relying on this trade reporting exception, including but not limited to, the basis for determining that the definition of "distribution" under Rule 100 of SEC Regulation M has been satisfied, as well as evidence of compliance with applicable notification requirements under Rule 5190.
.03 Trade Reporting Time Frame
(a) With respect to the requirement under paragraphs (a) and (f) of this Rule that members report trades and trade cancellations "as soon as practicable," a member with the trade reporting obligation under paragraph (b) of this Rule must adopt policies and procedures reasonably designed to comply with this requirement and must implement systems that commence the trade reporting process without delay upon execution (or cancellation, as applicable). Where a member has such reasonably designed policies, procedures and systems in place, the member generally will not be viewed as violating the "as soon as practicable" requirement because of delays in trade reporting that are due to extrinsic factors that are not reasonably predictable and where the member does not purposely intend to delay the reporting of the trade. In no event may a member purposely withhold trade reports, e.g., by programming its systems to delay reporting until the last permissible second.
(b) FINRA recognizes that a very small universe of trades are reported manually, and as a result, even where a member does not purposely withhold trade reports, the trade reporting process may not be completed within 10 seconds following execution. In these cases, for purposes of determining whether "reasonable justification" exists to excuse what otherwise may be deemed to be a pattern or practice of late trade reporting under this Rule and Rule 6623, FINRA will take into consideration such factors as the complexity and manual nature of the execution and reporting of the trade, where the trade details must be manually entered into the trade reporting system following execution.
.04 All time fields required by this Rule must be reported in hours, minutes, seconds and milliseconds, if the member's system captures time in milliseconds. Pursuant to the FINRA Rule 6800 Series (Consolidated Audit Trail Compliance Rule), Industry Members must report the execution of an order, in whole or in part ("order execution events") to the Central Repository. Industry Members must report time fields required by this Rule using the same timestamp granularity that they use to report order execution events to the Central Repository, in accordance with Rule 6860.
6623, Transaction Reporting
Amended by SR-FINRA-2020-029 eff. Nov. 14, 2022.
Amended by SR-FINRA-2013-050 and SR-FINRA-2014-039 eff. Nov. 17, 2014.
Amended by SR-FINRA-2013-013 eff. Nov 4, 2013.
Amended by SR-FINRA-2011-027 eff. Nov. 1, 2011.
Amended by SR-FINRA-2011-061 eff. Oct. 14, 2011.
Amended by SR-FINRA-2011-024 eff. June 17, 2011.
Amended by SR-FINRA-2010-058 eff. Feb. 28, 2011.
Amended by SR-FINRA-2010-017 eff. June 1, 2010.
Amended by SR-FINRA-2009-082 eff. April 12, 2010.
Amended by SR-FINRA-2009-031 eff. Jan. 11, 2010.
Amended by SR-FINRA-2008-011 eff. Aug. 3, 2009.
Amended by SR-FINRA-2009-024 eff. May 4, 2009.
Amended by SR-FINRA-2008-057 eff. Dec. 15, 2008.
Amended by SR-NASD-2007-030 eff. Apr. 20, 2007.
Amended by SR-NASD-2006-120 eff. Dec. 4, 2006.
Amended by SR-NASD-2005-087 eff. Aug. 1, 2006.
Amended by SR-NASD-2005-062 eff. June 9, 2005.
Amended by SR-NASD-2005-027 eff. Feb. 14, 2005.
Amended by SR-NASD-2004-151 eff. Oct. 12, 2004.
Amended by SR-NASD-2004-021 eff. Sept. 20, 2004.
Amended by SR-NASD-2004-076 eff. May 5, 2004.
Amended by SR-NASD-2003-154 eff. Nov. 3, 2003.
Amended by SR-NASD-2003-98 eff. Sept. 4, 2003.
Amended by SR-NASD-2003-14 eff. January 31, 2003.
Amended by SR-NASD-2001-36 eff. July 6, 2001.
Amended by SR-NASD-2000-52 eff. Aug. 30, 2000.
Amended by SR-NASD-99-57 eff. Oct. 25, 1999.
Amended by SR-NASD-98-59 eff. Sept. 30, 1999.
Amended by SR-NASD-98-47 eff. July 9, 1998.
Amended by SR-NASD-94-35 eff. Dec. 12, 1994.
Amended by SR-NASD-93-40 eff. Oct. 7, 1993.
Selected Notices: 93-62, 93-83, 99-65, 99-66, 07-25, 08-57, 09-08, 09-21, 09-52, 10-07, 10-24, 10-26, 10-29, 10-48, 11-40, 13-19, 14-21, 20-41.
Regulatory Notice 18-29
FINRA Reminds Firms of Their Obligations When Effecting OTC Trades in Equity Securities on a Net Basis
SEC Approves Rule Change to Require Reporting of Transactions in U.S. Treasury Securities to the Trade Reporting and Compliance Engine (TRACE)
FINRA Requests Comment on a Proposal to Identify OTC Equity Trades Reported More Than Two Seconds After Execution as "Out of Sequence" and Not Last Sale Eligible
FINRA Requests Comment on a Proposal to Publish OTC Equity Volume Executed Outside Alternative Trading Systems
SEC Approves Amendments to Equity Trade Reporting and OATS Rules
FINRA Issues an Interpretation to Clarify the Classification and Trade Reporting of Certain "Hybrid" Securities to FINRA
SEC Approves Amendments to Require Firms to Report OTC Transactions in Equity Securities as Soon as Practicable, But No Later Than 10 Seconds, Following Execution
FINRA Requests Comment on Proposed Amendments Relating to Reporting of OTC Trades Executed in a Mixed Capacity
FINRA Announces New Electronic Process for Submission of Notice and Information Relating to Distributions Subject to SEC Regulation M
SEC Approves Amendments Clarifying Certain Exceptions Under Trade Reporting Rules and Adopting Notice Requirement for Transactions That Are Part of an Unregistered Secondary Distribution
Trade Reporting Notice - 6/3/11
FINRA Reminds Firms of Their Trade Reporting Obligations and Announces New Submission Process for Form T
SEC Approves Amendments to Require Reporting of OTC Trades in Equity Securities Within 30 Seconds of Execution
SEC Approves Amendments to Trade Reporting Requirements for Restricted Equity Securities and Revisions to the Definition of OTC Equity Security
Regulatory Notices 10-29
SEC Approves Amendments to Rules on Reporting Transactions to the OTC Reporting Facility
SEC Approves Amendments to FINRA Rules on Reporting Cancellations of Previously Reported OTC Trades in Equity Securities
› Next ›
Book traversal links for 6622. Transaction Reporting
‹ 6621. Definitions
6623. Timely Transaction Reporting ›
Versions Nov 14, 2022 onwards Nov 17, 2014 - Nov 13, 2022 Nov 04, 2013 - Nov 16, 2014 Nov 01, 2011 - Nov 03, 2013 Oct 14, 2011 - Oct 31, 2011 Jun 17, 2011 - Oct 13, 2011 Feb 28, 2011 - Jun 16, 2011 Nov 01, 2010 - Feb 27, 2011 Jun 28, 2010 - Oct 31, 2010 Jun 01, 2010 - Jun 27, 2010 Apr 12, 2010 - May 31, 2010 Feb 15, 2010 - Apr 11, 2010 Jan 11, 2010 - Feb 14, 2010 Aug 03, 2009 - Jan 10, 2010 May 04, 2009 - Aug 02, 2009 Jan 12, 2009 - May 03, 2009 Dec 15, 2008 - Jan 11, 2009


text:
var gulp = require('gulp'),
    concat = require('gulp-concat'),
    cleanCSS = require('gulp-clean-css'),
    rename = require('gulp-rename'),
    uglify = require('gulp-uglify'),
    autoprefixer = require('gulp-autoprefixer'),
    sourcemaps = require('gulp-sourcemaps'),
    sass = require('gulp-sass');

var jsSrc = './src/scripts/*.js',
    jsConcat = './src/scripts/concat/*.js',
    cssConcat = './src/css/concat/*.css';

gulp.task('concatJs', function() {
  return gulp.src(jsConcat)
    .pipe(concat('external.js'))
    .pipe(gulp.dest('src/js'));
});

gulp.task('concatCss', function() {
  return gulp.src(cssConcat)
    .pipe(concat('external.css'))
    .pipe(gulp.dest('src/css'));
});

gulp.task('clean-css', function() {
    return gulp.src('./src/scss/*.*')
        .pipe(sourcemaps.init())
            .pipe(sass().on('error', sass.logError))
            .pipe(autoprefixer())
            .pipe(cleanCSS())
            .pipe(rename({suffix: '.min'}))
        .pipe(sourcemaps.write('../maps'))
        .pipe(gulp.dest('dist/css'));
});

gulp.task('clean-js', function() {
    return gulp.src(jsSrc)
        .pipe(sourcemaps.init())
            .pipe(uglify())
            .pipe(rename({suffix: '.min'}))
        .pipe(sourcemaps.write('../maps'))
        .pipe(gulp.dest('dist/scripts'));
});

redpajama_set_name: RedPajamaGithub


Capt Away from base allowances: from Eur.55/day to 75/day.
Since January 1st 2008, White is paying for Pilots' retirement.
Leave Accordingly with portuguese law (22 to 25 days).
Lisbon - Portugal but, during some ACMI operations Pilots may expect up to 3 weeks away.
This webpage is provided to help students at aviation schools and flight schools find information on White pilot jobs. Whether you are looking for specific airline pilot jobs or more general information on aviation schools, pilot interviews, type rating requirements, pilot salaries and airlines, this website can help.
Coverage of airline pilot opportunities is provided for many flight schools and airlines, and you can search by aircraft type if you have a type rating and are looking for specific pilot employment opportunities. Students at aviation schools and flight schools may wish to visit the website periodically to keep up to date with the latest recruitment news for White pilot jobs.


Probably a Daddy Holly body that was reheaded many years ago. Layers of crusty old repaint. Iron keel. Nice example with two important brands. The sloop Reckless of Havre de Grace Maryland was a sailing yacht that catered to wealthy duck hunters or "sports" on the Susquehanna Flats.


text:
Q: OpenGL Shadow Mapping using GLSL I am trying to get shadow mapping working using GLSL. Unfortunately my depth render results are unusable even I have a pretty decent depth buffer precision. It is rendering like wireframe, following image may be a better description.
I am also including a test case(single file including shader), only dependency is pyopengl.

# shadow mapping test
# utkualtinkaya at gmail
# shader is from http://www.fabiensanglard.net/shadowmapping/index.php

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from OpenGL.GL.shaders import *
from OpenGL.GL.framebufferobjects import *
import math

class Camera:
    def __init__(self):
        self.rotx, self.roty = math.pi/4, math.pi/4
        self.distance = 100
        self.moving = False
        self.ex, self.ey = 0, 0
        self.size = (800, 600)

    def load_matrices(self):
        glViewport(0, 0, *self.size)
        y = math.cos(self.roty) * self.distance
        x = math.sin(self.roty) * math.cos(self.rotx) * self.distance
        z = math.sin(self.roty) * math.sin(self.rotx) * self.distance

        glMatrixMode(GL_PROJECTION)
        glLoadIdentity()
        gluPerspective(45.0, self.size[0]/float(self.size[1]), 1, 1000)

        glMatrixMode(GL_MODELVIEW)
        glLoadIdentity()
        gluLookAt(x,y,z, 0,0,0, 0,1,0)

    def on_mouse_button (self, b, s, x, y):
        self.moving = not s
        self.ex, self.ey = x, y
        if b in [3, 4]:
            dz = (1 if b == 3 else -1)
            self.distance += self.distance/15.0 * dz;

    def on_mouse_move(self, x, y, z = 0):
        if self.moving:
            self.rotx += (x-self.ex) / 300.0
            self.roty += -(y-self.ey) / 300.0
            self.ex, self.ey = x, y

    def set_size(self, w, h):
        self.size = w, h

class Shader():
    def __init__(self):
        self.is_built = False
        self.uniforms = {}

    def build(self):
        self.program = compileProgram(
        compileShader('''
            uniform mat4 camMatrix;
            uniform mat4 shadowMatrix;
            varying vec4 depthProjection;
            uniform bool useShadow;

            void main() {
                gl_Position = camMatrix * gl_ModelViewMatrix * gl_Vertex;
                depthProjection = shadowMatrix * gl_ModelViewMatrix * gl_Vertex;
                gl_FrontColor = gl_Color;
            }
        ''',GL_VERTEX_SHADER),
        compileShader('''
            varying vec4 depthProjection;
            uniform sampler2D shadowMap;
            uniform bool useShadow;

            void main () {
                float shadow = 1.0;
                if (useShadow) {
                    vec4 shadowCoord = depthProjection / depthProjection.w ;
                    // shadowCoord.z -= 0.0003;
                    float distanceFromLight = texture2D(shadowMap, shadowCoord.st).z;
                    if (depthProjection .w > 0.0)
                        shadow = distanceFromLight < shadowCoord.z ? 0.5 : 1.0 ;

                    }
                gl_FragColor = shadow * gl_Color;
              }
        ''',GL_FRAGMENT_SHADER),)
        self.is_built = True

        self.uniforms['camMatrix'] = glGetUniformLocation(self.program, 'camMatrix')
        self.uniforms['shadowMatrix'] = glGetUniformLocation(self.program, 'shadowMatrix')
        self.uniforms['shadowMap'] = glGetUniformLocation(self.program, 'shadowMap')
        self.uniforms['useShadow'] = glGetUniformLocation(self.program, 'useShadow')
        print self.uniforms

    def use(self):
        if not self.is_built:
            self.build()
        glUseProgram(self.program)

class Test:
    def __init__(self):
        glutInit(sys.argv)
        glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
        glutInitWindowSize(800, 600)
        glutInitWindowPosition(1120/2, 100)
        self.window = glutCreateWindow("Shadow Test")
        self.cam = Camera()
        self.light = Camera()
        self.cam.set_size(800, 600)
        self.light.set_size(2048, 2048)
        self.light.distance = 100
        self.shader = Shader()
        self.initialized = False

    def setup(self):
        self.initialized = True
        glClearColor(0,0,0,1.0);
        glDepthFunc(GL_LESS)
        glEnable(GL_DEPTH_TEST)

        self.fbo = glGenFramebuffers(1);
        self.shadowTexture = glGenTextures(1)

        glBindFramebuffer(GL_FRAMEBUFFER, self.fbo)

        w, h = self.light.size

        glActiveTexture(GL_TEXTURE5)
        glBindTexture(GL_TEXTURE_2D, self.shadowTexture)

        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
        glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
        glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );

        glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, w, h, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, None)

        glDrawBuffer(GL_NONE)
        glReadBuffer(GL_NONE)

        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, self.fbo, 0)

        FBOstatus = glCheckFramebufferStatus(GL_FRAMEBUFFER)
        if FBOstatus != GL_FRAMEBUFFER_COMPLETE:
            print ("GL_FRAMEBUFFER_COMPLETE_EXT failed, CANNOT use FBO\n");

        glBindFramebuffer(GL_FRAMEBUFFER, 0)
        #glActiveTexture(GL_TEXTURE0)

    def draw(self):
        glPushMatrix()
        glTranslate(0, 10 ,0)
        glColor4f(0, 1, 1, 1)
        glutSolidCube(5)
        glPopMatrix()

        glPushMatrix()
        glColor4f(0.5, 0.5, .5, 1)
        glScale(100, 1, 100)
        glutSolidCube(1)
        glPopMatrix()

    def apply_camera(self, cam):
        cam.load_matrices()
        model_view = glGetDoublev(GL_MODELVIEW_MATRIX);
        projection = glGetDoublev(GL_PROJECTION_MATRIX);
        glMatrixMode(GL_MODELVIEW)
        glLoadIdentity()
        glMultMatrixd(projection)
        glMultMatrixd(model_view)
        glUniformMatrix4fv(self.shader.uniforms['camMatrix'], 1, False, glGetFloatv(GL_MODELVIEW_MATRIX))
        glLoadIdentity()

    def shadow_pass(self):
        glUniform1i(self.shader.uniforms['useShadow'], 0)

        glBindFramebuffer(GL_FRAMEBUFFER, self.fbo)
        glClear(GL_DEPTH_BUFFER_BIT)
        glCullFace(GL_FRONT)
        self.apply_camera(self.light)
        self.draw()
        glBindFramebuffer(GL_FRAMEBUFFER, 0)

    def final_pass(self):
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

        self.light.load_matrices()
        model_view = glGetDoublev(GL_MODELVIEW_MATRIX);
        projection = glGetDoublev(GL_PROJECTION_MATRIX);
        glMatrixMode(GL_MODELVIEW)
        glLoadIdentity()
        bias = [ 0.5, 0.0, 0.0, 0.0,
                 0.0, 0.5, 0.0, 0.0,
                 0.0, 0.0, 0.5, 0.0,
                 0.5, 0.5, 0.5, 1.0]
        glLoadMatrixd(bias)
        glMultMatrixd(projection)
        glMultMatrixd(model_view)
        glUniformMatrix4fv(self.shader.uniforms['shadowMatrix'], 1, False, glGetFloatv(GL_MODELVIEW_MATRIX))

        glActiveTexture(GL_TEXTURE5)
        glBindTexture(GL_TEXTURE_2D, self.shadowTexture)
        glUniform1i(self.shader.uniforms['shadowMap'], 5)

        glUniform1i(self.shader.uniforms['useShadow'], 1);

        self.apply_camera(self.cam)
        glLoadIdentity()
        glCullFace(GL_BACK)
        self.draw()

    def render(self):
        if not self.initialized: self.setup()
        self.shader.use()
        self.shadow_pass()
        self.final_pass()
        glutSwapBuffers()

    def mouse_move(self, *args):
        self.cam.on_mouse_move(*args)
        self.light.on_mouse_move(*args)

    def mouse_button(self, b, *args):
        if b==0:
            self.light.on_mouse_button(b, *args)
        else:
            self.cam.on_mouse_button(b, *args)

    def main(self):
        glutDisplayFunc(self.render)
        glutIdleFunc(self.render)
        glutMouseFunc(self.mouse_button)
        glutMotionFunc(self.mouse_move)
        glutReshapeFunc(self.cam.set_size)
        #self.setup()
        glutMainLoop()

if __name__ == '__main__':
    test = Test()
    test.main()

A: solved it, it is the binding issue, in shadow pass fragment shader I simply checked a boolean value to disable reading the texture, but that was not enough. I should have unbind the texture before shadow pass, that is mentioned in documentation as:
Quote from OpenGL Refence:
Special precautions need to be taken to avoid attaching a texture image to the currently bound framebuffer while the texture object is currently bound and potentially sampled by the current vertex or fragment shader.
NVIDIA ignores this, ATI behaves pretty much "undefined" as the documentation says.

A: // shadowCoord.z -= 0.0003;

Your commented out shadow bias is the solution to your z-fighting problem. Change it to some value e.g. += 0.0005 and you should be good to go.


text:
Q: case when then where I am trying to write a case statement with a where clause just for one of the "when" cases.
Basically:
Case when status='A' then sum(amount) where recorded_date=ongoing_date
when ...
else ...

The where only applies to the first case statement so I cant do where case when ...
Any suggestions?

A: I suspect that you want:
sum(case when status = 'A' and recorded_date = ongoing_date then amount else 0 end) as sum_a_sameday

A: I think this might help. Basically instead of using where, you can add all the required conditions under 'when' for each case:
CASE WHEN STATUS = 'A' AND recorded_date=ongoing_date THEN sum(amount)
WHEN STATUS = 'B' THEN ....
ELSE ...


text:
<!doctype html>

    <title>Color & Type generator</title>
    <link rel="stylesheet" href="css/vendor/bootstrap.min.css">
    <link rel="stylesheet" href="css/vendor/font-awesome.min.css">
    <link rel="stylesheet" href="css/vendor/jquery-ui.css">
    <link rel="stylesheet" href="css/vendor/jquery.typey.css">
    <link rel="stylesheet" href="css/style-v1.css">
    <link rel="stylesheet" href="#" id="goog-font">

                        Toggle Buttons

                            <button class="btn-block btn-xs btn btn-default" id="random-fonts">Font family</button>
                            <button class="btn-block btn-xs btn btn-default" id="random-colors">Color scheme</button>
                            <button class="btn-block btn-xs btn btn-default" id="random-all">Everything</button>
                            <button class="btn-block btn-xs btn btn-info" data-toggle="modal" data-target="#export-modal">Export</button>

                        Button border radius
                        <input type="range" min="0" max="50" id="border-radius">

                    <textarea name="" id="css-code" cols="30" rows="10" class="disabled" disabled></textarea>
                    <textarea name="" id="font-code" cols="30" rows="10" class="disabled" disabled></textarea>

                    <button class="close" data-dismiss="modal" aria-hidden="true">×</button>

Exported CSS for block

                    <button class="btn btn-default" data-dismiss="modal">Close</button>
                    <button class="btn btn-primary">Save changes</button>