text:
2017 NFL Draft: Leonard Fournette heads top five running backs
By Bucky Brooks
Published: Feb. 22, 2017 at 02:08 p.m.
Updated: March 1, 2017 at 11:15 a.m.
Top prospects: QB
Pass rusher
With the 2017 NFL Scouting Combine upon us, Bucky Brooks is ranking the top prospects at key positions. Today's focus: running backs.
1) Leonard Fournette, LSU
Pro comparison: Adrian Peterson.
Strengths: Old-school runner with a no-nonsense running style. As a downhill runner with nifty feet and a violent finish, Fournette is built to play in a power-based offense that features power, isolations and toss sweeps from a "dot" position (directly behind the QB in the pistol or I-formation). He displays extraordinary strength and power running through contact, yet he is nimble enough to avoid defenders with a little wiggle at the second level and has the speed to take it the distance. With Fournette also displaying the grit, toughness and stamina to carry the ball 20-25 times per game as a collegian, the LSU star is the ideal workhorse to build a power-based offense around.
Weaknesses: In today's NFL, running backs are expected to play a prominent role in the passing game. Despite showing soft hands and decent route-running skills (screens and check-downs), Fournette is an unknown commodity as a receiver out of the backfield due to his lack of reps at LSU. In addition, Fournette shows questionable technique and blocking skills in pass protection. He has to perform better in the passing game to have a chance of being a three-down player in a traditional pro-style offense.
Team fits: Carolina Panthers, Cleveland Browns, Oakland Raiders.
2) Dalvin Cook, Florida State
Pro comparison: LeSean McCoy.
Strengths: Dynamic runner with outstanding burst and acceleration. Cook has rare zero to 60 speed but also displays exceptional lateral quickness and pitter-pat. He is best described as a slip-and-slide runner with sneaky power and home-run potential. To that point, Cook excels on off-tackle runs (counter and stretch) that allow him to use his speed, quickness and stop-start ability to gash the defense on the edges or on cutbacks between the guards. He flashes surprising pop at the ends of runs, which allows him to pull through contact on the way to moving the chains. As a receiver, Cook is a natural pass-catcher with soft hands and polished route-running skills. He is versatile enough to create mismatches out of the backfield or out wide as a designated playmaker in the passing game.
Weaknesses: Cook's struggles with ball security will concern teams looking for a dependable ball carrier in the backfield. He coughed the ball up seven times (five lost) over the past two seasons (445 touches), which is too much for an RB1 at the next level. Scouts also worry about his ability to thrive as a workhorse based on his size (6-foot, 214 pounds) and running style. Evaluators question whether he can close out the game as the "finisher" in a four-minute offense.
Team fits: Indianapolis Colts, Philadelphia Eagles, Detroit Lions, Tampa Bay Buccaneers.
3) Christian McCaffrey, Stanford
Pro comparison: Dion Lewis.
Strengths: Triple-threat playmaker capable of delivering splash plays as a runner, receiver or returner. McCaffrey might be the most complete back in the draft from a skills standpoint, but he is ideally suited to play as a complementary player at the next level. As a runner, he displays a patient running style that will remind some of Le'Veon Bell due to his discipline and stop-start acceleration. Despite his diminutive size (6-foot, 197 pounds), McCaffrey excels on inside runs, particularly the power between the guards. As a receiver, he is an explosive pass catcher with soft hands and dynamic route-running ability. He creates chaos in the passing game on screens, swings and rail routes but also has the potential to move into the slot or out wide in spread or empty formations to exploit a matchup. In the return game, McCaffrey is like an MLB centerfielder with exceptional tracking skills. He fields the ball cleanly running to either side and flashes big-play potential when evading defenders in traffic. With few returners capable of rivaling McCaffrey's skills as a return man, the Stanford star could be a difference maker as a three-way player at the next level.
Weaknesses: Despite McCaffrey's stellar career résumé, there are plenty of concerns about his ability to thrive as an RB1 at the next level. Skeptics question whether he can handle a heavy workload and the responsibility of being the "bell cow" as a slender back. Sure, he repeatedly toted the rock 30-plus times during his tenure at Stanford, but the NFL grind is much different than the collegiate hustle. In addition, scouts want to see McCaffrey regain the burst and explosiveness that appeared to disappear during his final season.
Team fits: Green Bay Packers, New England Patriots, Philadelphia Eagles, New Orleans Saints.
4) Alvin Kamara, Tennessee
Pro comparison: Jamaal Charles.
Strengths: Electric playmaker with dynamic skills as a runner, receiver and returner. Kamara is one of the most explosive ball carriers in the draft, as evidenced by his 6.2 yards per attempt and 16 rushing scores during his two seasons at Tennessee. As a runner, he excels on the edges on sweeps and stretches to the perimeter. Kamara not only flashes outstanding burst and acceleration, but he shows terrific stop-start quickness and cutback skills. Those same skills make the Tennessee standout a nightmare to defend in the passing game, as well. He displays cat-like quickness in space and polished receiving skills out of the backfield. Kamara runs precise routes from his traditional halfback position but also shows the potential to thrive as a route runner from the slot. Considering how teams are beginning to use more running backs as slot receivers in the passing game, Kamara's versatility and receiving skills could make him a game-changer in some systems.
Weaknesses: Durability concerns cloud Kamara's evaluation. He has never logged more than 18 rushing attempts in a game, which is well below the standard workload for a feature back. Without an extensive history as a "bell cow," the questions about his ability to fill a void as an RB1 are certainly valid. Not to mention, Kamara's shifty running style and limited power lead to additional concerns about his ability to fill a role as a grinder at the end of games.
Team fits: Philadelphia Eagles, Tampa Bay Buccaneers, Detroit Lions.
5) Joe Mixon, Oklahoma
Pro comparison: David Johnson.
Strengths: If not for character concerns, Mixon would probably rate as the top running back in the draft, based on his natural skills as an explosive runner-receiver. The Oklahoma standout is a productive inside-outside runner with elite vision, burst and cutback ability. He can slither in and out of holes with snake-like quickness and body control. In addition, Mixon shows sneaky power and pop running through defenders at the ends of runs. As a receiver, he is the most polished route runner in space, exhibiting outstanding timing, patience and body control, shaking defenders at the top of routes. Mixon is a natural in the passing game as a slot receiver or out wide. He can run any route from anywhere in the formation, which makes him a dynamic threat in the mold of David Johnson. With that in mind, teams looking for a multi-faceted playmaker out of the backfield will be intrigued by Mixon's talents.
Weaknesses: Mixon's transgressions overshadow his immense talents on the field. He committed a heinous act during the summer prior to his freshman year, and his character concerns will make him a tough sell in meeting rooms around the league, particularly given an incident with a traffic attendant during the fall that led to a one-game suspension for Mixon.
On the field, scouts wonder if Mixon can carry the load as an RB1 after splitting with Samaje Perine during his time at Oklahoma. Without an extensive resume as a feature back, teams have to peg him as a rotational player at this point.
Team fits: New England Patriots, Dallas Cowboys, Washington Redskins.
Follow Bucky Brooks on Twitter @BuckyBrooks.


text:
Politics selected
Green Party conference: Brexit and Grenfell Tower on agenda
https://www.bbc.co.uk/news/uk-politics-41530735
Image caption Jonathan Bartley and Caroline Lucas will address the party faithful at the Harrogate gathering
The Green Party of England and Wales will debate issues ranging from climate change to staying in the EU single market, at its annual conference.
Party members will gather at Harrogate on Saturday for the four-day event.
Like the Lib Dems, SNP and UKIP, the Greens saw their vote share fall in the 2017 general election, as 82% of voters backed the Conservatives or Labour.
The party got 1.6% of the vote, down on the 3.8% it got in 2015, although it retained its Brighton Pavilion seat.
The party's co-leader Jonathan Bartley, who will give a speech on Monday, said the Greens would say "things others won't" - including on Brexit.
Guide: 2017 political party conferences
"When there is an establishment consensus on leaving the single market, we'll say that's incompatible with ending austerity," he said. "We're at a turning point - and we need to be asking big questions about our future."
Among topics being discussed at the conference are the Grenfell Tower disaster and council accountability and what Brexit means for the environment.
The Greens have a single seat at Westminster - Brighton Pavilion, which has been held by co-leader Caroline Lucas since 2010 - and three MEPs.
It has built strong pockets of local support in cities such as Norwich, Oxford, and Bristol but failed to make hoped-for breakthroughs there in June.
Green Party (England and Wales)
Green backlash against 'progressive alliance'
Video Caroline Lucas 'proud' of Green Party campaign
Job application 'withdrawn by identity thief'
Politics Sections

redpajama_set_name: RedPajamaCommonCrawl


This page features a variety of pieces and designs from our previous collections. Click on any photo to see the piece and learn more. If you see a piece here that you would like to purchase or you would like to order a custom piece, please email us at order@gyoie.com.


text:
Home > india > Provide necessary infrastructure to Adi Dravidar Welfare School
Provide necessary infrastructure to Adi Dravidar Welfare School
The Madurai Bench of the Madras High Court on Monday directed the State to file a report after a public interest litigation petition complained about the bad condition of a government school in Karambakudi in Pudukkottai district.
A Division Bench of Justices Pushpa Sathyanarayana and P. Velmurugan sought a response in the PIL petition filed by S. Shanmugam of Pudukkottai district. He said that the Adi Dravidar Welfare school in Mullankurichi village in Karambakudi lacked basic infrastructure.
The petitioner, a member of Periyar Ambedkar Makkal Kalagam, sought the direction to the authorities to renovate the school building and provide necessary infrastructure facilities like adequate classrooms, well equipped science and computer labs and a compound wall.
He also sought a direction to the authorities to provide drinking water facilities, toilet facilities and railings for differently abled children. He complained that the school building was in a bad condition and could collapse.
The school was surrounded by Seemai Karuvelam or Prosopis Juliflora and other bushes. It was unsafe for the school children. Therefore, the authorities should take immediate steps to remove the bushes, he said.
He said that the Comprehensive School Infrastructure Development Scheme was launched during 2011-12 with an objective to provide basic infrastructure facilities to all schools in the rural areas. He said that he had sent a representation to the authorities in this regard.
But, no action has been taken so far to provide the required infrastructure to the Adi Dravidar Welfare School in Mullankurichi, he said. He sought a direction to the authorities to renovate the school building and provide the necessary infrastructure to the school. The case was adjourned by four weeks.
Previous Post:High Court fiat to govt. on nominations to Karnataka Medical Council
Next Post:Cuddalore logs 7 cases, zero deaths


text:
Home Economic Nigeria Minister of Health Instruct Oil Companies Not to Flare Gas
Nigeria Minister of Health Instruct Oil Companies Not to Flare Gas
The Nigeria Minister of Environment, Dr. Mohammad Abubakar, in a meeting with stakeholders of the Nigeria oil and gas sector, held in River state capital portharcut, advice the oil companies to desist from gas flaring, the flaring which has cause more harms to the environmental health, has high risk of cancer and differ kind of skin disease.
The Minister said the companies should used other ways of disposing waste instead of flaring the gas, which is more detrimental to the human health, he also stated that the Nigeria government will hit heavy on companies using gas flaring as means of deposition of waste product, as the method is no longer relevant in the global practice of waste.
The Minister said the Federal Government is concerned about ending gas flaring as it 'is a big challenge to the national economy and the health of Nigerians.
He stated that the government is now more concerned about harnessing gas to stop environmental pollution.
The Minister explained that the objective can be achieved by bringing in investors to partner government to channel the gas into electricity, create jobs and tackle flaring.
According to the Minister, "Government is calling on investors to partner with us to achieve this objective. Trust me, it can start this now, in two to three years, gas flaring will be a thing of the past. We are concerned because we are losing while at the same time polluting our environment."
"Looking at the 2030 deadline, it is a long time. But we are looking at stopping it sooner before that time."
On the Ogoni cleanup, Abubakar said COVID -19 pandemic slowed down the process but noted that the government was strengthening and collaboration to ensure that the exercise is carried out next year.
Rivers State Commissioner for Environment, Dr. Igbiks Tamuno, lamented that gas flaring increases daily, damaging the environment and killing the people while the Federal government keeps shifting the deadline to end the menace.
He said the Niger Delta region bears the brunt of the flaring activities, tasking the government to develop the political will to stop the ugly trend.
He said: "We cannot be talking about biodiversity, climate change in this region without stopping gas flaring, which is very peculiar to the region. You cannot remove gas flaring from the issues affecting the environment. But, sadly, they keep postponing the deadline. Five years ago, gas flaring was to end by 2020. While 2020 approached, there was silence. Now, they are talking about 2030, and nobody knows if they will not shift it again."
Previous articleNigeria Maritime Worker on Strike
Next articleThe Nigeria Inflation Just Hit 20.6 Percent in December
Politics December 8, 2020
Nigeria Maritime Worker on Strike
Lagos State University Increase Tuition Fee to 67,048 Naira
Uncategorized December 19, 2020
Olusegun Obasenjo, Send A Congratulation Message to Ghana President Elect.
Minister of Labour Plead With ASSU to go Back to Classroom
DSS Forcefully Arrest Osun End Sars Protester Co-ordinator
The Nigeria inflation just hit 20.6 percent as of yesterday, this was announced yesterday by the Nigeria National Bureau of Statistics (NBS),...


In "RD Web Access", there is no option to enable Remote Desktop Gateway. Therefore, administrator can configure the default Remote Desktop Gateway for users in IIS.
Assuming Remote Desktop Gateway and Remote Desktop Web Access were installed in the same server named "rdg.contoso.com"
To configure Remote Desktop Gateway, please read "Deploying Remote Desktop Gateway in workgroup environment" for your reference.
2. Launch "Internet Information Services (IIS) Manager".
3. Expand "RDG > Sites > Default Web Site > RDWeb > Pages".
4. In the detail pane, double-click "Application Settings".
By default, there is no Remote Desktop Gateway to be assigned.
6. Under "Value", type "rdg.contoso.com".
Now, all Remote Desktop Connection in Remote Desktop Web Access is through the Remote Desktop Gateway, "rdg.contoso.com".
Remark: To configure the above settings of Terminal Services Gateway, the IIS path is "<Server Name> > Sites > Default Web Site > TS".


text:
Q: Sliding a animated div back if user click on body I'm creating a feedback form. The description of the problem is given below
I want that the div should slide back, when a use click on the body anywhere and also on contact Us. I've tried like this.
$(document).click(function () {
    $('div.slider').animate({
        toggle: "width"
    }, 1000, function () {

    });
});

but in this case the div is sliding back and forth when I'm trying to click over that.
I googled around but the thing where i stuck around is how to search means which keyword is describing my problem
I don't want this.
Adding a link to my code in this Fiddle.

Answer to this question is given by Pete
Thank You Pete
Link to Fiddle is Here

A: Here is the script that will work for you: http://jsfiddle.net/aamir/cQswC/12/
$(document).ready(function(){
var animation = "155px";
$('div.right, .slider').click(function(e){e.stopPropagation();});
$('div.right').click(function(e){
    e.stopPropagation();
    $(this).animate({
        right:animation
    },200,function(){
        if(animation === "155px")
            animation = "-40px";
        else
            animation = "155px";
        console.log("Animation Complete");
    });
    $('div.slider').animate({
        width:"toggle"
    },200, function(){
        console.log("Slider Animation Complter");
    });
});

//catch the event and check if element clicked is not the toggle label
$('html').click(function (e) {
    if(animation =='155px') return;
    if (!$('.right').is($(e.target))) {
        $('.right').click();
    }
});

});

redpajama_set_name: RedPajamaStackExchange


text:
#undef LOCAL_DEBUG
#undef DO_CLOCKING

#include <string.h>

#include "../configure.h"

#include "asapp.h"
#include "../libAfterImage/afterimage.h"
#include "screen.h"
#include "shape.h"
#include "canvas.h"

inline Bool
get_current_canvas_geometry (ASCanvas * pc, int *px, int *py,
														 unsigned int *pwidth, unsigned int *pheight,
														 unsigned int *pbw)
{
	Window wdumm;
	unsigned int udumm;
	int dumm;

	if (pc == NULL)
		return False;

	if (px == NULL)
		px = &dumm;
	if (py == NULL)
		py = &dumm;
	if (pwidth == NULL)
		pwidth = &udumm;
	if (pheight == NULL)
		pheight = &udumm;
	if (pbw == NULL)
		pbw = &udumm;

	return (XGetGeometry
					(dpy, pc->w, &wdumm, px, py, pwidth, pheight, pbw, &udumm) != 0);
}

static void set_canvas_shape_to_rectangle (ASCanvas * pc)
{
#ifdef SHAPE
	unsigned int width, height, bw;
	XRectangle rect;

	rect.x = 0;
	rect.y = 0;
#ifdef STRICT_GEOMETRY
	get_current_canvas_geometry (pc, NULL, NULL, &width, &height, &bw);
#else
	width = pc->width;
	height = pc->height;
	bw = pc->bw;
#endif
	rect.width = width + bw * 2;
	rect.height = height + bw * 2;
	LOCAL_DEBUG_OUT ("XShapeCombineRectangles(%lX) (%dx%d%+d%+d)", pc->w,
									 rect.width, rect.height, -bw, -bw);
	XShapeCombineRectangles (dpy, pc->w, ShapeBounding, -bw, -bw, &rect, 1,
													 ShapeSet, Unsorted);
	set_flags (pc->state, CANVAS_SHAPE_SET);
#endif
}

static void set_canvas_shape_to_nothing (ASCanvas * pc)
{
#ifdef SHAPE
	LOCAL_DEBUG_OUT ("XShapeCombineMask(%lX) (clearing mask)", pc->w);
	XShapeCombineMask (dpy, pc->w, ShapeBounding, 0, 0, None, ShapeSet);
	clear_flags (pc->state, CANVAS_SHAPE_SET);
#endif
	if (pc->shape)
		destroy_shape (&pc->shape);
}

/********************************************************************/
/* ASCanvas :                                                       */
/********************************************************************/
static ASFlagType refresh_canvas_config (ASCanvas * pc)
{
	ASFlagType changed = 0;

	if (pc && pc->w != None) {
		int root_x = pc->root_x, root_y = pc->root_y, dumm;
		unsigned int width = pc->width, height = pc->height, udumm;
		Window wdumm;
		unsigned int bw;

		XTranslateCoordinates (dpy, pc->w, ASDefaultRoot, 0, 0, &root_x,
													 &root_y, &wdumm);
		XGetGeometry (dpy, pc->w, &wdumm, &dumm, &dumm, &udumm, &udumm, &bw,
									&udumm);
		root_x -= bw;
		root_y -= bw;
		if (root_x != pc->root_x)
			set_flags (changed, CANVAS_X_CHANGED);
		if (root_y != pc->root_y)
			set_flags (changed, CANVAS_Y_CHANGED);
		pc->root_x = root_x;
		pc->root_y = root_y;
		pc->bw = bw;

		if (!get_drawable_size (pc->w, &width, &height))
			return 0;									/* drawable is bad */
		if (width != pc->width)
			set_flags (changed, CANVAS_WIDTH_CHANGED);
		if (height != pc->height)
			set_flags (changed, CANVAS_HEIGHT_CHANGED);

		clear_flags (pc->state, CANVAS_CONFIG_INVALID);

		if (width != pc->width || height != pc->height) {
			destroy_visual_pixmap (ASDefaultVisual, &(pc->saved_canvas));
			destroy_visual_pixmap (ASDefaultVisual, &(pc->canvas));

			if (pc->saved_shape)
				destroy_shape (&(pc->saved_shape));

			if (pc->shape) {
				destroy_shape (&(pc->shape));
			}
			set_flags (pc->state, CANVAS_DIRTY | CANVAS_OUT_OF_SYNC);
			pc->width = width;
			pc->height = height;
		}
	}
	return changed;
}

Pixmap get_canvas_canvas (ASCanvas * pc)
{
	if (pc == NULL)
		return None;
	if (get_flags (pc->state, CANVAS_CONTAINER))
		return None;
	LOCAL_DEBUG_CALLER_OUT ("ASCanvas(%p)->canvas(%lX)", pc, pc->canvas);
	if (pc->canvas == None) {
		pc->canvas =
				create_visual_pixmap (ASDefaultVisual, ASDefaultRoot, pc->width,
															pc->height, 0);
		set_flags (pc->state, CANVAS_DIRTY | CANVAS_OUT_OF_SYNC);
		XSetWindowBackgroundPixmap (dpy, pc->w, pc->canvas);
	}
	return pc->canvas;
}

ASCanvas *create_ascanvas (Window w)
{
	ASCanvas *pc = NULL;

	if (w) {
		pc = safecalloc (1, sizeof (ASCanvas));
		pc->w = w;
		refresh_canvas_config (pc);
		LOCAL_DEBUG_CALLER_OUT
				("<<#########>>canvas %p created for w: %lX; geom = %dx%d%+d%+d, bw = %d",
				 pc, pc->w, pc->width, pc->height, pc->root_x, pc->root_y, pc->bw);
	}
	return pc;
}

ASCanvas *create_ascanvas_container (Window w)
{
	ASCanvas *pc = NULL;

	if (w) {
		pc = safecalloc (1, sizeof (ASCanvas));
		pc->w = w;
		pc->state = CANVAS_CONTAINER;
		refresh_canvas_config (pc);
		LOCAL_DEBUG_CALLER_OUT
				("<<#########>>container canvas %p created for w: %lX; geom = %dx%d%+d%+d, bw = %d",
				 pc, pc->w, pc->width, pc->height, pc->root_x, pc->root_y, pc->bw);
	}
	return pc;
}

void destroy_ascanvas (ASCanvas ** pcanvas)
{
	if (pcanvas) {
		ASCanvas *pc = *pcanvas;

		LOCAL_DEBUG_CALLER_OUT
				("<<#########>>destroying canvas %p for window %lX", pc,
				 pc ? pc->w : None);
		if (pc) {
			destroy_visual_pixmap (ASDefaultVisual, &(pc->saved_canvas));
			destroy_visual_pixmap (ASDefaultVisual, &(pc->canvas));
			LOCAL_DEBUG_OUT ("saved_shape = %p, shape = %p", pc->saved_shape,
											 pc->shape);
			if (pc->saved_shape && pc->saved_shape != pc->shape)
				destroy_shape (&(pc->saved_shape));
			if (pc->shape)
				destroy_shape (&(pc->shape));
			memset (pc, 0x00, sizeof (ASCanvas));
			free (pc);
		}
		*pcanvas = NULL;
	}
}

ASFlagType handle_canvas_config (ASCanvas * canvas)
{
	ASFlagType res;

	LOCAL_DEBUG_CALLER_OUT
			("canvas(%p)->window(%lx)->orig_geom(%ux%u%+d%+d)", canvas,
			 canvas->w, canvas->width, canvas->height, canvas->root_x,
			 canvas->root_y);
	res = refresh_canvas_config (canvas);
	LOCAL_DEBUG_CALLER_OUT
			("canvas(%p)->window(%lx)->new__geom(%ux%u%+d%+d)->change(0x%lX)",
			 canvas, canvas->w, canvas->width, canvas->height, canvas->root_x,
			 canvas->root_y, res);
	return res;
}

void invalidate_canvas_config (ASCanvas * pc)
{
	if (pc) {
		if (get_flags (pc->state, CANVAS_CONFIG_INVALID))
			return;

		LOCAL_DEBUG_OUT ("resizing to %dx%d", pc->width + 1, pc->height + 1);
		XResizeWindow (dpy, pc->w, pc->width + 1, pc->height + 1);
#ifdef SHAPE
		if (!get_flags (pc->state, CANVAS_CONTAINER)
				&& get_flags (pc->state, CANVAS_SHAPE_SET))
			set_canvas_shape_to_nothing (pc);
#endif

		pc->width = 0;
		pc->height = 0;
		destroy_visual_pixmap (ASDefaultVisual, &(pc->canvas));
		destroy_visual_pixmap (ASDefaultVisual, &(pc->saved_canvas));
		if (pc->shape)
			destroy_shape (&(pc->shape));
		if (pc->saved_shape)
			destroy_shape (&(pc->saved_shape));
		set_flags (pc->state,
							 CANVAS_DIRTY | CANVAS_OUT_OF_SYNC |
							 CANVAS_MASK_OUT_OF_SYNC);
		set_flags (pc->state, CANVAS_CONFIG_INVALID);
	}
}

Bool
get_canvas_position (ASCanvas * pc, Window * pparent, int *px, int *py,
										 unsigned int *pbw)
{
	Window wdumm;
	int dumm;
	unsigned int udumm;

	if (pparent == NULL)
		pparent = &wdumm;
	if (px == NULL)
		px = &dumm;
	if (py == NULL)
		py = &dumm;
	if (pbw == NULL)
		pbw = &udumm;
	if (pc)
		if (XGetGeometry
				(dpy, pc->w, pparent, px, py, &udumm, &udumm, pbw, &udumm))
			return True;
	return False;
}

Bool
make_canvas_rectangle (ASCanvas * pc, ASImage * im, int x, int y, int *cx,
											 int *cy, int *cwidth, int *cheight)
{
	if (pc == NULL || im == NULL || cx == NULL || cy == NULL
			|| cwidth == NULL || cheight == NULL)
		return False;
	*cwidth = im->width;
	*cheight = im->height;
	*cx = x;
	*cy = y;
	if (x + *cwidth <= 0 || x > pc->width)
		return False;
	if (y + *cheight <= 0 || y > pc->height)
		return False;

	if (*cx < 0) {
		*cwidth += *cx;
		*cx = 0;
	}
	if (*cx + *cwidth > pc->width)
		*cwidth = pc->width - *cx;
	if (*cy < 0) {
		*cheight += *cy;
		*cy = 0;
	}
	if (*cy + *cheight > pc->height)
		*cheight = pc->height - *cy;
	return True;
}

Bool draw_canvas_image (ASCanvas * pc, ASImage * im, int x, int y)
{
	Pixmap p;
	int real_x, real_y;
	int width, height;
	Bool done = False;

	LOCAL_DEBUG_CALLER_OUT ("pc(%p)->im(%p)->x(%d)->y(%d)", pc, im, x, y);
	if (im == NULL || pc == NULL)
		return False;
	if ((p = get_canvas_canvas (pc)) == None)
		return False;

	if (!make_canvas_rectangle
			(pc, im, x, y, &real_x, &real_y, &width, &height))
		return False;

	LOCAL_DEBUG_OUT ("drawing image %dx%d at %dx%d%+d%+d", im->width,
									 im->height, width, height, real_x, real_y);
	if (get_flags (ASDefaultVisual->glx_support, ASGLX_UseForImageTx))
		done = asimage2drawable_gl (ASDefaultVisual, p, im,
																real_x - x, real_y - y, real_x, real_y,
																width, height, pc->width, pc->height,
																False);
	if (!done)
		done =
				asimage2drawable (ASDefaultVisual, p, im, ASDefaultDrawGC,
													real_x - x, real_y - y, real_x, real_y, width,
													height, True);

	if (done) {
		set_flags (pc->state, CANVAS_OUT_OF_SYNC);
		XClearArea (dpy, pc->w, real_x, real_y, width, height, True);
		XSync (dpy, False);
	}
	return done;
}

void
fill_canvas_mask (ASCanvas * pc, int win_x, int win_y, int width,
									int height)
{
	int real_x, real_y;
	int real_width, real_height;

	if (pc == NULL)
		return;

	if (pc->shape != None && !get_flags (pc->state, CANVAS_CONTAINER)) {
		real_x = MAX (win_x, 0);
		real_y = MAX (win_y, 0);
		real_width = width - (real_x - win_x);
		real_height = height - (real_y - win_y);
		if (real_width > 0 && real_height > 0 && real_x < pc->width
				&& real_y < pc->height) {
			int res;
			XRectangle rect;

			rect.x = real_x;
			rect.y = real_y;
			rect.width = real_width;
			rect.height = real_height;
			LOCAL_DEBUG_OUT ("filling mask at %dx%d%+d%+d", rect.width,
											 rect.height, rect.x, rect.y);
			res =
					add_shape_rectangles (pc->shape, &rect, 1, 0, 0, pc->width,
																pc->height);
			if (res)
				set_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC);
		}
	}
}

Bool draw_canvas_mask (ASCanvas * pc, ASImage * im, int x, int y)
{
	XRectangle *rects;
	unsigned int rects_count = 0;
	Bool res = True;
	int real_x, real_y;
	int width, height;

	if (im == NULL || pc == NULL)
		return False;

	if (!make_canvas_rectangle
			(pc, im, x, y, &real_x, &real_y, &width, &height))
		return False;

	rects = get_asimage_channel_rects (im, IC_ALPHA, 10, &rects_count);
	LOCAL_DEBUG_OUT ("%d rectangles generated", rects_count);

	if (pc->shape == NULL)
		pc->shape = create_shape ();

	if (rects != NULL && rects_count > 0) {
		res =
				add_shape_rectangles (pc->shape, rects, rects_count, real_x,
															real_y, pc->width + pc->bw,
															pc->height + pc->bw);
		free (rects);
	}

	if (res)
		set_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC);
	return res;
}

inline Bool
get_current_canvas_size (ASCanvas * pc, unsigned int *pwidth,
												 unsigned int *pheight)
{
	if (pc == NULL)
		return False;

	*pwidth = pc->width;
	*pheight = pc->height;
	if (get_flags (pc->state, CANVAS_CONFIG_INVALID))
		return get_drawable_size (pc->w, pwidth, pheight);
	return True;
}

void update_canvas_display_mask (ASCanvas * pc, Bool force)
{
#ifdef SHAPE
	LOCAL_DEBUG_CALLER_OUT ("canvas(%p)", pc);
	if (pc == NULL)
		return;
	LOCAL_DEBUG_OUT ("window(%lx)->canvas_pixmap(%lx)->size(%dx%d)", pc->w,
									 pc->canvas, pc->width, pc->height);
	if (pc->w != None) {
		if (force || !get_flags (pc->state, CANVAS_CONTAINER)) {
			if (pc->shape) {
				LOCAL_DEBUG_OUT
						("XShapeCombineREctangles(%lX)set canvas mask to %d rectangles",
						 pc->w, PVECTOR_USED (pc->shape));
				if (PVECTOR_USED (pc->shape) > 0)
					XShapeCombineRectangles (dpy, pc->w, ShapeBounding, 0, 0,
																	 PVECTOR_HEAD (XRectangle, pc->shape),
																	 PVECTOR_USED (pc->shape), ShapeSet,
																	 Unsorted);
				else {									/* we are still shaped - but completely opaque */

					XRectangle nothing;

					nothing.x = pc->width / 2;
					nothing.y = pc->height / 2;
					nothing.width = nothing.height = 1;
					XShapeCombineRectangles (dpy, pc->w, ShapeBounding, 0, 0,
																	 &nothing, 1, ShapeSet, Unsorted);
				}
				if (pc->bw > 0) {
					XRectangle border[4];

					border[0].x = -pc->bw;
					border[0].y = -pc->bw;
					border[0].width = pc->width + pc->bw * 2;
					border[0].height = pc->bw;
					border[1].x = -pc->bw;
					border[1].y = -pc->bw;
					border[1].width = pc->bw;
					border[1].height = pc->height + pc->bw * 2;
					border[2].x = -pc->bw;
					border[2].y = pc->height;
					border[2].width = pc->width + pc->bw * 2;
					border[2].height = pc->bw;
					border[3].x = pc->width;
					border[3].y = -pc->bw;
					border[3].width = pc->bw;
					border[3].height = pc->height + pc->bw * 2;
					XShapeCombineRectangles (dpy, pc->w, ShapeBounding, 0, 0,
																	 &(border[0]), 4, ShapeUnion, Unsorted);
				}
				set_flags (pc->state, CANVAS_SHAPE_SET);
			} else if (get_flags (pc->state, CANVAS_SHAPE_SET))
				set_canvas_shape_to_nothing (pc);
			XSync (dpy, False);
			clear_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC);
		}
	}
#endif
}

#ifdef TRACE_update_canvas_display
#undef update_canvas_display
void update_canvas_display (ASCanvas * pc);
void
trace_update_canvas_display (ASCanvas * pc, const char *file, int line)
{
	fprintf (stderr, "D>%s(%d):update_canvas_display(%p)\n", file, line, pc);
	update_canvas_display (pc);
}
#endif

void update_canvas_display (ASCanvas * pc)
{
	LOCAL_DEBUG_CALLER_OUT ("canvas(%p)", pc);
	if (pc == NULL)
		return;

	LOCAL_DEBUG_OUT ("window(%lx)->canvas_pixmap(%lx)->size(%dx%d)", pc->w,
									 pc->canvas, pc->width, pc->height);
	if (pc && pc->w != None) {
		if (!get_flags (pc->state, CANVAS_CONTAINER)) {
			if (pc->canvas) {
#ifdef SHAPE
				update_canvas_display_mask (pc, False);
#endif
				XSetWindowBackgroundPixmap (dpy, pc->w, pc->canvas);
				XClearWindow (dpy, pc->w);

				XSync (dpy, False);
				clear_flags (pc->state,
										 CANVAS_DIRTY | CANVAS_OUT_OF_SYNC |
										 CANVAS_MASK_OUT_OF_SYNC);
			}
		}
	}
}

void invalidate_canvas_save (ASCanvas * pc)
{
	if (pc) {
		destroy_visual_pixmap (ASDefaultVisual, &(pc->saved_canvas));
		destroy_shape (&(pc->saved_shape));
	}
}

Bool restore_canvas (ASCanvas * pc)
{
	if (pc) {
		if (pc->saved_canvas == None)
			return False;

		destroy_visual_pixmap (ASDefaultVisual, &(pc->canvas));
		pc->canvas = pc->saved_canvas;
		pc->saved_canvas = None;

		destroy_shape (&(pc->shape));
		pc->shape = pc->saved_shape;
		pc->saved_shape = NULL;

		update_canvas_display (pc);
		return True;
	}
	return False;
}

Bool save_canvas (ASCanvas * pc)
{
	if (pc) {
		destroy_visual_pixmap (ASDefaultVisual, &(pc->saved_canvas));
		pc->saved_canvas = pc->canvas;
		pc->canvas = None;

		destroy_shape (&(pc->saved_shape));
		pc->saved_shape = pc->shape;
		pc->shape = NULL;

		set_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC | CANVAS_OUT_OF_SYNC);
		return (pc->saved_canvas != None);
	}
	return False;
}

Bool swap_save_canvas (ASCanvas * pc)
{
	Pixmap tmp_canvas;
	struct ASVector *tmp_shape;

	if (pc) {
		tmp_canvas = pc->saved_canvas;
		pc->saved_canvas = pc->canvas;
		pc->canvas = tmp_canvas;

		tmp_shape = pc->saved_shape;
		pc->saved_shape = pc->shape;
		pc->shape = tmp_shape;

		set_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC | CANVAS_OUT_OF_SYNC);
		return (pc->canvas != None);
	}
	return False;

}

void clear_canvas_shape (ASCanvas * pc, Bool force_for_container)
{
	LOCAL_DEBUG_CALLER_OUT ("canvas(%p)", pc);
	if (pc == NULL)
		return;

	LOCAL_DEBUG_OUT ("window(%lx)->canvas_pixmap(%lx)->size(%dx%d)", pc->w,
									 pc->canvas, pc->width, pc->height);
	if (pc->w != None) {
		if (!get_flags (pc->state, CANVAS_CONTAINER) || force_for_container) {
#ifdef SHAPE
			if (pc->canvas && get_flags (pc->state, CANVAS_SHAPE_SET))
				set_canvas_shape_to_rectangle (pc);	/* just in case  */
			set_canvas_shape_to_nothing (pc);
#endif
			if (pc->shape)
				destroy_shape (&pc->shape);
			set_flags (pc->state, CANVAS_DIRTY | CANVAS_OUT_OF_SYNC);
		}
	}
}

Bool check_canvas_shaped (ASCanvas * pc)
{
	Bool boundingShaped = False;

#ifdef SHAPE
	if (pc) {
		int dumm;
		unsigned udumm;

		XShapeQueryExtents (dpy, pc->w,
												&boundingShaped, &dumm, &dumm, &udumm, &udumm,
												&dumm, &dumm, &dumm, &udumm, &udumm);
	}
#endif
	return boundingShaped;
}

Bool refresh_container_shape (ASCanvas * pc)
{
	int res = False;

	if (pc && get_flags (pc->state, CANVAS_CONTAINER)) {
		int count, order;
		XRectangle *rects;

#ifdef SHAPE
		rects =
				XShapeGetRectangles (dpy, pc->w, ShapeBounding, &count, &order);
#endif
		if (rects) {
			unsigned int curr_width = 1, curr_height = 1;

			if (pc->shape == NULL)
				pc->shape = create_shape ();
			else
				flush_vector (pc->shape);
			get_drawable_size (pc->w, &curr_width, &curr_height);
			res =
					add_shape_rectangles (pc->shape, rects, count, 0, 0,
																curr_width + pc->bw * 2,
																curr_height + pc->bw * 2);
			XFree (rects);

			if (res)
				set_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC);
		} else if (pc->shape) {
			destroy_shape (&(pc->shape));
			set_flags (pc->state, CANVAS_MASK_OUT_OF_SYNC);
			res = True;
		}
	}
	return res;
}

Bool
combine_canvas_shape_at_geom (ASCanvas * parent, ASCanvas * child,
															int child_x, int child_y, int child_width,
															int child_height, int child_bw)
{
	int res = False;

#ifdef SHAPE
	LOCAL_DEBUG_OUT ("parent(%p),child(%p)", parent, child);
	if (parent && child) {
		unsigned int parent_width, parent_height;

		LOCAL_DEBUG_OUT ("parent->shape(%p)", parent->shape);
		if (parent->shape == NULL)
			return False;

		LOCAL_DEBUG_OUT ("child->shape(%p)", child->shape);
		if (child->shape != NULL && PVECTOR_USED (child->shape) == 0) {
			LOCAL_DEBUG_OUT ("child->shape has no rectangles%s", "");
			return False;							/* child has an empty shape */
		}
#ifdef STRICT_GEOMETRY
		get_current_canvas_size (parent, &parent_width, &parent_height);
#else
		parent_width = parent->width;
		parent_height = parent->height;
#endif

		if (child_x > parent_width || child_y > parent_height ||
				child_x + child_width <= 0 || child_y + child_height <= 0) {
#ifdef LOCAL_DEBUG
			if (get_flags (child->state, CANVAS_CONTAINER))
				LOCAL_DEBUG_OUT
						("container shape ignored - out of bounds: %dx%d%+d%+d parents: %dx%d%+d%+d",
						 child_width, child_height, child_x, child_y, parent_width,
						 parent_height, parent->root_x, parent->root_y);
#endif
			return False;
		}
#if 1
		if (child->shape && PVECTOR_USED (child->shape) > 0) {
			LOCAL_DEBUG_OUT ("adding %d child's shape rectangles",
											 PVECTOR_USED (child->shape));
#if defined(LOCAL_DEBUG) && !defined(NO_DEBUG_OUTPUT)
			{
				int i, max_i = PVECTOR_USED (child->shape);
				XRectangle *r = PVECTOR_HEAD (XRectangle, child->shape);

				for (i = 0; i < max_i; ++i)
					fprintf (stderr, "\t\t r[%d] = %dx%d%+d%+d\n", i, r[i].width,
									 r[i].height, r[i].x, r[i].y);
			}
			LOCAL_DEBUG_OUT ("child geom = %dx%d%+d%+d, bw = %d", child_width,
											 child_height, child_x, child_y, child_bw);
#endif
			res =
					add_shape_rectangles (parent->shape,
																PVECTOR_HEAD (XRectangle, child->shape),
																PVECTOR_USED (child->shape),
																child_x + child_bw, child_y + child_bw,
																parent_width, parent_height);
			if (res && child_bw > 0) {
				XRectangle border[4];

				border[0].x = 0;
				border[0].y = 0;
				border[0].width = child_width + child_bw;
				border[0].height = child_bw;
				border[1].x = 0;
				border[1].y = child_bw;
				border[1].width = child_bw;
				border[1].height = child_height;
				border[2].x = child_width + child_bw;
				border[2].y = 0;
				border[2].width = child_bw;
				border[2].height = child_height + child_bw * 2;
				border[3].x = 0;
				border[3].y = child_height + child_bw;
				border[3].width = child_width + child_bw * 2;
				border[3].height = child_bw;
				res =
						add_shape_rectangles (parent->shape, &(border[0]), 4, child_x,
																	child_y, parent_width, parent_height);
			}
		} else
#endif
		{
			XRectangle rect;

			rect.x = child_x;
			rect.y = child_y;
			rect.width = child_width + child_bw * 2;
			rect.height = child_height + child_bw * 2;
			LOCAL_DEBUG_OUT
					("adding child's shape as whole rectangle: %dx%d%+d%+d",
					 rect.width, rect.height, rect.x, rect.y);

			res =
					add_shape_rectangles (parent->shape, &rect, 1, 0, 0,
																parent_width + parent->bw * 2,
																parent_height + parent->bw * 2);
		}
	}
#endif
	return res;
}

Bool combine_canvas_shape (ASCanvas * parent, ASCanvas * child)
{
	int res = False;

#ifdef SHAPE
	if (parent && child) {
		int child_x = 0;
		int child_y = 0;
		unsigned int width, height, bw;

		if (parent->shape == NULL)
			return False;
#ifndef STRICT_GEOMETRY
		get_current_canvas_geometry (child, &child_x, &child_y, &width,
																 &height, &bw);
#else
		child_x = child->root_x - parent->root_x;
		child_y = child->root_y - parent->root_y;
		width = child->width;
		height = child->height;
		bw = child->bw;
#endif
		res =
				combine_canvas_shape_at_geom (parent, child, child_x, child_y,
																			width, height, bw);
	}
#endif
	return res;
}

Bool
combine_canvas_shape_at (ASCanvas * parent, ASCanvas * child, int child_x,
												 int child_y)
{
#ifdef SHAPE
	if (child) {
		unsigned int width, height, bw;

#ifndef STRICT_GEOMETRY
		get_current_canvas_geometry (child, NULL, NULL, &width, &height, &bw);
#else
		width = child->width;
		height = child->height;
		bw = child->bw;
#endif

		return combine_canvas_shape_at_geom (parent, child, child_x, child_y,
																				 width, height, bw);
	}
#endif
	return False;
}

Bool is_canvas_needs_redraw (ASCanvas * pc)
{
	return pc ? get_flags (pc->state, CANVAS_DIRTY) : False;
}

Bool is_canvas_dirty (ASCanvas * pc)
{
	return pc ? get_flags (pc->state,
												 CANVAS_DIRTY | CANVAS_OUT_OF_SYNC |
												 CANVAS_MASK_OUT_OF_SYNC) : False;
}

ASFlagType
configure_canvas (ASCanvas * pc, int x, int y, unsigned int width,
									unsigned int height, ASFlagType mask)
{
	ASFlagType changes = 0;
	XWindowChanges xwc;
	int curr_x, curr_y;
	unsigned int curr_width, curr_height, curr_bw;

	if (pc == NULL)
		return 0;

	get_current_canvas_geometry (pc, &curr_x, &curr_y, &curr_width,
															 &curr_height, &curr_bw);

	LOCAL_DEBUG_CALLER_OUT ("canvas(%p)->window(%lx)->geom(%ux%u%+d%+d)", pc,
													pc->w, width, height, x, y);
	/* Setting background to None to avoid background pixmap tiling
	 * while resizing */
	if (!get_flags (mask, CWWidth))
		width = pc->width;
	else if (width > MAX_POSITION) {
#ifdef DEBUG_ALLOCS
		AS_ASSERT (0);
#endif
		width = pc->width;
	} else if (AS_ASSERT (width))
		width = 1;

	if (!get_flags (mask, CWHeight))
		height = pc->height;
	else if (height > MAX_POSITION) {
#ifdef DEBUG_ALLOCS
		AS_ASSERT (0);
#endif
		height = pc->height;
	} else if (AS_ASSERT (height))
		height = 1;

	if (get_flags (mask, CWX) && curr_x != x)
		set_flags (changes, CANVAS_X_CHANGED);
	if (get_flags (mask, CWY) && curr_y != y)
		set_flags (changes, CANVAS_Y_CHANGED);
	if (width != curr_width)
		set_flags (changes, CANVAS_WIDTH_CHANGED);
	if (height != curr_height)
		set_flags (changes, CANVAS_HEIGHT_CHANGED);

	if (changes == 0)
		return 0;
	xwc.x = x;
	xwc.y = y;
	xwc.width = width;
	xwc.height = height;

	if ((pc->width < width || pc->height < height)
			&& !get_flags (pc->state, CANVAS_CONTAINER))
		XSetWindowBackgroundPixmap (dpy, pc->w, None);

	LOCAL_DEBUG_OUT ("XConfigureWindow( %lX, %lX, %dx%d%+d%+d );", pc->w,
									 mask, width, height, x, y);
	XConfigureWindow (dpy, pc->w, mask, &xwc);
/*fprintf( stderr, "client_changes: ( %lX, %lX, %dx%d%+d%+d ); was %dx%d%+d%+d\n", pc->w, mask, width, height, x, y, curr_width, curr_height, curr_x, curr_y );*/
	return changes;
}

ASFlagType
resize_canvas (ASCanvas * pc, unsigned int width, unsigned int height)
{
	if (pc == NULL)
		return 0;

	return configure_canvas (pc, 0, 0, width, height, CWWidth | CWHeight);
}

ASFlagType
moveresize_canvas (ASCanvas * pc, int x, int y, unsigned int width,
									 unsigned int height)
{
	if (pc == NULL)
		return 0;
	return configure_canvas (pc, x, y, width, height,
													 CWX | CWY | CWWidth | CWHeight);
}

void move_canvas (ASCanvas * pc, int x, int y)
{
	if (pc == NULL)
		return;

	LOCAL_DEBUG_CALLER_OUT ("canvas(%p)->window(%lx)->geom(%+d%+d)", pc,
													pc->w, x, y);
	XMoveWindow (dpy, pc->w, x, y);
}

void unmap_canvas_window (ASCanvas * pc)
{
	if (pc && pc->w != None) {
		XUnmapWindow (dpy, pc->w);
		clear_flags (pc->state, CANVAS_MAPPED);
	}
}

void map_canvas_window (ASCanvas * pc, Bool raised)
{
	LOCAL_DEBUG_CALLER_OUT ("pc=%p", pc);
	if (pc == NULL)
		return;

	LOCAL_DEBUG_OUT ("raised = %s", raised ? "True" : "False");
	if (pc->w != None) {
		if (raised)
			XMapRaised (dpy, pc->w);
		else
			XMapWindow (dpy, pc->w);
		set_flags (pc->state, CANVAS_MAPPED);
	}
}

void
quietly_reparent_canvas (ASCanvas * pc, Window dst, long event_mask,
												 Bool use_root_pos, Window below)
{
	if (pc) {
		int x = 0, y = 0;
		unsigned int bw = pc->bw;
		Window parent = None;

		if (dst == None)
			dst = ASDefaultRoot;

		if (use_root_pos) {
			x = pc->root_x;
			y = pc->root_y;
		} else
			get_canvas_position (pc, &parent, &x, &y, &bw);

		if (parent != dst) {
			/* blocking UnmapNotify events since that may bring us into Withdrawn state */
			XSelectInput (dpy, pc->w, event_mask & ~StructureNotifyMask);
			LOCAL_DEBUG_OUT ("XReparentWindow( %lX, %lX, %+d%+d ), bw = %d",
											 pc->w, dst, x, y, bw);
			if (below != None && get_flags (pc->state, CANVAS_MAPPED)) {
				Window w[2];

				XUnmapWindow (dpy, pc->w);
				XReparentWindow (dpy, pc->w, (dst != None) ? dst : ASDefaultRoot,
												 x, y);
				w[0] = below;
				w[1] = pc->w;
				XRestackWindows (dpy, w, 2);
				XMapWindow (dpy, pc->w);
			} else
				XReparentWindow (dpy, pc->w, (dst != None) ? dst : ASDefaultRoot,
												 x, y);
			XSelectInput (dpy, pc->w, event_mask);
		}
	}
}

void reparent_canvas_window (ASCanvas * pc, Window dst, int x, int y)
{
	if (pc) {
		if (dst == None)
			dst = ASDefaultRoot;
		LOCAL_DEBUG_OUT ("XReparentWindow( %lX, %lX, +0+0 )", pc->w, dst);
		XReparentWindow (dpy, pc->w, dst, 0, 0);
	}
}

void
add_canvas_grid (ASGrid * grid, ASCanvas * canvas, int outer_gravity,
								 int inner_gravity, Bool absolute)
{
	if (canvas && grid) {
		unsigned long flags = absolute ? ASGL_Absolute : 0;
		int x = canvas->root_x;
		int y = canvas->root_y;

		if (!absolute) {
			x += grid->curr_vx;
			y += grid->curr_vy;
		}

		LOCAL_DEBUG_CALLER_OUT ("(%p,%ux%u%+d%+d)", canvas, canvas->width,
														canvas->height, canvas->root_x,
														canvas->root_y);
		add_gridline (grid, y, x, x + canvas->width + canvas->bw * 2,
									outer_gravity, inner_gravity, flags);
		add_gridline (grid, y + canvas->height + canvas->bw * 2, x,
									x + canvas->width + canvas->bw * 2, inner_gravity,
									outer_gravity, flags);
		set_flags (flags, ASGL_Vertical);
		add_gridline (grid, x, y, y + canvas->height + canvas->bw * 2,
									outer_gravity, inner_gravity, flags);
		add_gridline (grid, x + canvas->width + canvas->bw * 2, y,
									y + canvas->height + canvas->bw * 2, inner_gravity,
									outer_gravity, flags);
	}
}

void set_root_clip_area (ASCanvas * canvas)
{
	if (canvas) {
		ASDefaultScr->RootClipArea.x = canvas->root_x + (int)canvas->bw;
		ASDefaultScr->RootClipArea.y = canvas->root_y + (int)canvas->bw;
		ASDefaultScr->RootClipArea.width = canvas->width;
		ASDefaultScr->RootClipArea.height = canvas->height;
		if (ASDefaultScr->RootImage) {
			safe_asimage_destroy (ASDefaultScr->RootImage);
			ASDefaultScr->RootImage = NULL;
		}
	}
}

/*************************************************************************/

void send_canvas_configure_notify (ASCanvas * parent, ASCanvas * canvas)
{
	LOCAL_DEBUG_CALLER_OUT ("%p,%p", parent, canvas);
	if (canvas) {
		XEvent client_event;
		unsigned int uwidth, uheight, ubw;

		client_event.type = ConfigureNotify;
		client_event.xconfigure.display = dpy;
		client_event.xconfigure.event = canvas->w;
		client_event.xconfigure.window = canvas->w;

		get_current_canvas_geometry (canvas, &(client_event.xconfigure.x),
																 &(client_event.xconfigure.y), &uwidth,
																 &uheight, &ubw);
		client_event.xconfigure.width = uwidth;
		client_event.xconfigure.height = uheight;
		client_event.xconfigure.border_width = ubw;

		if (parent) {
#if 1
			Window wdumm;

			XTranslateCoordinates (dpy, canvas->w, ASDefaultRoot, 0, 0,
														 &(client_event.xconfigure.x),
														 &(client_event.xconfigure.y), &wdumm);
#else														/* we maybe called before parent's geometry is updated - so don't trust it! */
			client_event.xconfigure.x += parent->root_x + (int)parent->bw;
			client_event.xconfigure.y += parent->root_y + (int)parent->bw;
#endif
			/* Real ConfigureNotify events say we're above title window, so ... */
			/* what if we don't have a title ????? */
			client_event.xconfigure.above = parent->w;
		} else
			client_event.xconfigure.above = ASDefaultRoot;
		client_event.xconfigure.override_redirect = False;
		LOCAL_DEBUG_OUT ("geom= %dx%d%+d%+d", client_event.xconfigure.width,
										 client_event.xconfigure.height,
										 client_event.xconfigure.x, client_event.xconfigure.y);
		XSendEvent (dpy, canvas->w, False, StructureNotifyMask, &client_event);
	}
}

redpajama_set_name: RedPajamaGithub


text:
David Lam Scholarship
David Lam/BC TEAL English Language Learner ScholarshipApplication DeadlineThe application deadline for the David Lam/BC TEAL English Language Learner Scholarship is January 31st of each year. Successful applicants will be notified within six weeks of the application deadline.
DescriptionDavid Lam/BC TEAL English Language Learner Scholarship was established by the TEAL Charitable Foundation to honour David C. Lam, the 25th Lieutenant-Governor of British Columbia. During his lifetime, David C. Lam was respected for his commitment to excellence and public service. The TEAL Charitable Foundation honours his contributions to British Columbia through the David Lam/BC TEAL English Language Learner Scholarship.
The Scholarship is valued at up to $3,000. It recognizes an English language learner graduating from a BC secondary school who has combined academic competence with school and community service, and who wishes to further his/her education at a post-secondary institution in British Columbia.
Please note that applicants for the David C. Lam/BC TEAL ELL Scholarship must be documented permanent residents of Canada. International students on student visas are not eligible for this award.
CriteriaApplicants are evaluated according to the following criteria:
Must be a BC Grade 12 student who wishes to attend a BC post-secondary institution
Documented English language coursework at the secondary level (Grades 9 to 12)
Consistent improvement in academic courses at the secondary level
Documented school or community service
Application RequirementsApplicants are required to submit:
A short description of the applicant's life before coming to Canada
A personal essay (original copy signed by the applicant):a. Two pages in length, double-spaced, approximately 500 words
b. Topic: How a post-secondary education will enable the applicant to make a positive contribution to Canadian society
b. One from an administrator, counsellor, coach, sponsor, or coordinator regarding service to others
Documented proof of permanent residency of Canadian citizenship
Grade 9 to 11 transcripts, including all English language coursework
Grade 12 transcripts to date
Completed application and supporting documents. Click here to download the David Lam/BC TEAL English Language Learner Scholarship.
https://www.bcteal.org/award_scholarship/david-c-lam-ell-scholarship/
Stacey Levitt Memorial Award
The successful recipient will also receive a copy of Stacey's book of poetry, I Am a Rose: A Life in Poetry published by her family in 1996 after her death.
To Everyone
Set a goal
and reach it!
Hold your head high!
Don't settle for second,
Aim for the top,
Use your power!
Let yourself go
up, up,
to the zenith of your being!
Believe in yourself!
You can do whatever you want
If you really set your heart to it!
- Inspiring words from Stacey's poetry journal, written in 1989 at the age of 12
2019 Award details and application now available - click here.
The British Columbia School Superintendents Association will award six regional scholarships to students planning to pursue post-secondary studies.Students wishing to be considered for a scholarship must be currently enrolled in their final year of studies at a public secondary school in British Columbia and expected to graduate in June 2019. One winner will be chosen from each of the six BCSSA provincial chapters (Fraser Valley, Kootenay-Boundary, Metro, Vancouver Island, Northern, Thompson-Okanagan).
Each winner will be awarded a $1000 scholarship.
Download the 2019 Application package
Delta Trades & Technical Career Scholarships
Five, $2000 scholarships will be awarded annually
- Resident of Delta
- Graduated from or has graduated within the past five years from a Delta high school
- Student has applied to a post-secondary institution, including colleges, in the field of trades and technology
- Consideration will be given to: academic achievement, financial needs, student's community service and demonstrated desire to pursue a career in the file of trades and technology.
Due: February 28


Join Malcolm Duncan this Lent, as he draws from his own personal life and experiences to help us reflect on the Cross and the power of Christ in our own lives as we walk through the trials and tribulations of life.
These practical and personal six studies explore key issues surrounding the period of Lent using the much loved, tried and tested Cover to Cover Bible Study: format.
Ideal for both group and individual use and includes discussion starters and ice breakers.


text:
A San Francisco Institution Since 1966
You've been here before...You remember... It's the place your so happy to see after a long night on the town. It's the only place that was open at 2 am on a Wednesday night. It's the place Anthony Bourdain famously declared "Top 3 in the world" on his show, "The Layover". This place makes you forget AND brings you back to reality. It feels like home.
Since 1970, Mike Shawa has been called Sam, after his uncle who first opened the burger counter in 1966. Uncle Sam was the first transplant that brought the Shawa family and eventually 50 other family members to San Francisco. Since then Mike has been running the show. At 22, Mike's uncle gave him his first job flipping burgers at the small hole in the wall clothed in burgundy stools, faded collaged photos of those who've come and gone, autographs of those that were and are famous among wooden wall paneling. The place hasn't changed an ounce since it opened 50 years ago, when it became the first fast food burger spot in the North Beach. On June 13, 2016, nearly 50 years after starting his legacy, Mike Shawa passed away at the age of 70. He is survived by his wife Marwa and 3 sons, Fadi, Hani, and Emad. Mike gave his life to the North Beach and his legacy will always live through the neighborhood. Sam's will always be there to remind everyone of his wisdom, his grace, and the legend he created. R.I.P. to the father of the North Beach and its new guardian angel. He will forever be missed.
Throughout the years, through the window on Broadway, Mike saw the North Beach neighborhood change while Sam's has stayed the same. This has allowed Sam's to become a San Francisco landmark. Our faithful customers have grown older and new ones have joined their ranks, while Sam's has withstood the test of time. San Francisco is as much a part of Sam's legend as we are of hers and we wouldn't have it any other way. Here's to another 50 years serving the City we love.
Copyright © 2019, Samsonbroadway.com. Powered by Shopify


text:
Q: How to Upload Large files in Javascript in a Single Connection? I am trying to write some HTML/JS code which will facilitate uploading large files (multi-GB) to a remote server.  Previously we had been using a flash uploader which uploaded a given file in a single network request.  The flash would open a network connection, read a chunk of a file into memory then write that chunk to the network connection then grab the next chunk then write to the network etc. etc. until the entire file is uploaded.  It was done this way because most web browsers will attempt to read an entire file into memory before attempting to upload.  When dealing with multi-GB files, this essentially crashes the client system because it uses all of the client memory.  Now we are having issues with using flash, so it needs to go, we want to replace it without needing to modify the existing server-side code.
A few google searches for jquery uploaders reveals that there are plenty of libraries which support "chunking" but they "chunk" over multiple requests.  We do not want to chunk a file over multiple network requests, we merely want the JS to read the file in chunks as it writes the file to a single network connection.
Anybody know a library which can do this out of the box?
We are not opposed to modifying an existing library if need be.  Anyone have a snippet that resembles the bellow pseudo-code that I may be able to retrofit into a library?
connection = fopen(...);
fputs("123", connection);
... some unrelated code ...
fputs("456", connection);
fclose(connection);

(excuse my use of C functions in pseudo JS code ... I know that is not how you do it in JS, I am merely demonstrating at a low-level the flow for how I want to write to the network connection before closing it)
NOTE: We are not trying to "modernize" or improve this project extensively -- we are not trying to re-do this project. We have some old code that has sat here for years and we want to make as few changes to the server-side code as possible. I have more important projects to modernize and make more efficient -- this one we just need to work. Please don't advise me to impliment "proper" file chunking on the server side -- that was my suggestion, and if my suggestion were taken then that task would have been assigned to a different developer.  Out of my control now, this is a client-side-only fix please!
Thanks, sorry for any headache!

A: You could try binaryjs. I haven't looked into the internals but I know it supports manually setting the chunk size. Maybe you can even set it to Infinity.
Specifically you could try:
var client = new BinaryClient('example.com', { chunkSize: Number.POSITIVE_INFINITY });
client.send('data...');

Note: binaryjs is a NodeJS server library, and a browser-compatible client library.


text:
\section{Introduction}\label{sec:intro}

We prove a variety of results inspired by a conjecture of Caprace and Marquis, formulated in \cite{caprace09}.

\begin{conjecture}\label{conj1}
Let $G$ be a reductive algebraic $k$-group that is anisotropic over $k$. Then every split spherical $BN$-pair of $G(k)$ is trivial \cite{caprace09}.
\end{conjecture}

Here and in the following, a reductive group is always connected by definition.
A $BN$-pair $(B,N)$ of a group $G$ is called \emph{saturated} if $T:=B\cap N$ is equal to $\displaystyle\bigcap_{w\in W}wBw^{-1}$, and \emph{split} if it is saturated and $B$ decomposes as $B=U\rtimes T$, where $U$ is nilpotent. We say $(B,N)$ is \emph{trivial} if $B=G$, or equivalently if the building $\Delta=\Delta(G,B)$ is trivial. See \cite{abr08} for the relevant background on buildings. Conjecture~\ref{conj1} can be phrased as a converse to a well-known result of Borel and Tits \cite{bortits65}. Namely, for any reductive algebraic $k$-group $G$ that is \emph{isotropic} over $k$,
the group of $k$-rational points $G(k)$ admits a canonical (non-trivial) split spherical $BN$-pair. In their paper Caprace and Marquis focus on the following weaker conjecture.

\begin{conjecture}\label{conj2}
Let $G$ be a reductive algebraic $k$-group that is anisotropic over $k$. Then every split spherical $BN$-pair of $G(k)$ is virtually trivial \cite{caprace11}.
\end{conjecture}

We say a $BN$-pair $(B,N)$ of $G$ is \emph{virtually trivial} if $[G:B]<\infty$, or equivalently if the building $\Delta=\Delta(G,B)$ is finite. In \cite{caprace11} Conjecture~\ref{conj2} is shown to hold if $k$ is either local or perfect. In the present context we prove that for any infinite field $k$, if $G(k)$ consists of semisimple elements then Conjecture~\ref{conj1} holds. We also discover that, contrary to expectations, Conjecture~\ref{conj1} actually follows from Conjecture~\ref{conj2}, and so the two conjectures are equivalent. As explained in \cite{caprace11}, Conjecture~\ref{conj1} is related to a conjecture of Prasad and Rapinchuk that has so far only been proved in the $D^{\times}$ case,
namely that any finite quotient of an anisotropic reductive group must be solvable \cite{rapinchuk02}.

We phrase our main results without explicit reference to anisotropic groups, for the sake of full generality. By \cite{borel91}*{Corollary~18.3}, for any infinite field $k$, $G(k)$ is Zariski-dense in $G$. Also, if $G$ is $k$-anisotropic then in many cases $G(k)$ contains no non-trivial unipotent elements, or even consists solely of semisimple elements. These are the only properties we will need to prove our main results, though one should keep in mind the example of $H=G(k)$, and we will explicitly state our results with respect to the conjectures at the end.

The main results here are the following:

\begin{theorem}\label{refine_capr_marq}
Let $G$ be a reductive group over an algebraically closed field. Let $H$ be a subgroup of $G$ that is Zariski-dense in $G$. Then any virtually trivial split $BN$-pair of $H$ is trivial.
\end{theorem}

In particular if we take $H=G(k)$ for some infinite field $k$, Conjecture~\ref{conj2} implies Conjecture~\ref{conj1}. Note however that Theorem~\ref{refine_capr_marq} still applies even if $G(k)$ is isotropic.

\begin{theorem}\label{no_unip_thm}
Let $G$ be a reductive group over an algebraically closed field. Let $H$ be a subgroup that is Zariski-dense in $G$ and contains no non-trivial unipotent elements. Then any split spherical $BN$-pair of $H$ having irreducible rank $\geq2$ is trivial.
\end{theorem}

\begin{theorem}\label{all_ss_thm}
Let $G$ be a reductive group over an algebraically closed field. Let $H$ be a subgroup that is Zariski-dense in $G$ and consists only of semisimple elements. Then any split spherical $BN$-pair of $H$ is trivial.
\end{theorem}

In Section~\ref{sec:v_triv_to_triv} we prove Theorem~\ref{refine_capr_marq}. In particular if $k$ is local or perfect then by \cite{caprace11} Conjecture~\ref{conj2} holds, and so we conclude that even Conjecture~\ref{conj1} holds. We next present a proof of Theorem~\ref{no_unip_thm} in Section~\ref{sec:big_rank}, and prove Theorem~\ref{all_ss_thm} in Section~\ref{sec:any_rank}. Note that applying Theorem~\ref{all_ss_thm} with $H=G(k)$, the conclusion of Theorem~\ref{no_unip_thm} can be sharpened in some cases, e.g. if $k$ is perfect. In this way Conjecture~\ref{conj1} is shown to hold for the case when $k$ is perfect using a different line of attack than in \cite{caprace11}. We also establish Conjecture~\ref{conj1} for certain $G$ with no restriction on $k$, for example if $G(k)$ is the multiplicative group of a division algebra; see Section~\ref{sec:div_algs_and_conclusions}.

We mention that a much more general program is carried out by Prasad in \cite{prasad11}, which in particular establishes all the results proved here, and more. Our methods are very different, however, and could possibly be useful in other contexts, so the present work is still of interest.

\section{Virtually trivial implies trivial}\label{sec:v_triv_to_triv}

In this section we prove Theorem~\ref{refine_capr_marq}. The following key lemma plays an important role here as well as in Proposition~\ref{T_v_triv_implies_triv} below.
The first part of the proof below mimics parts of the proof of Theorem~4 in \cite{caprace11}.

\begin{lemma}\label{key_lemma}
Let $G$ be a reductive group over an algebraically closed field $K$, and let $H$ be any subgroup of $G$. Suppose that $H$ possesses a split $BN$-pair $(B=U\rtimes T,N)$ such that $G=\overline{B}Z(G)$, where $\overline{B}$ is the Zariski closure of $B$ in $G$. Then $U$ is trivial.
\end{lemma}
\begin{proof}
We first show that $U$ is finite. Since $U$ is nilpotent and normal in $B$, we know that $\overline{U}$ is nilpotent and normal in $\overline{B}$ \cite{borel91}*{Section~2.1}. By hypothesis $G=\overline{B}Z(G)$, so in fact $\overline{U}$ is normal in $G$. This implies that the identity component $\overline{U}^0$ is contained in the radical of $G$, which coincides with $Z(G)^0$ \cite{borel91}*{Proposition~11.21}. Now as in the proof of \cite{caprace11}*{Theorem~4} we have
$$[U:U\cap Z(G)]\leq[U:U\cap\overline{U}^0]=[U\overline{U}^0:\overline{U}^0]\leq[\overline{U}:\overline{U}^0]<\infty.$$
Also, if $u\in U\cap Z(G)$, then for any $g\in H$ we have $ugC=guC=gC$ where $C$ is the fundamental chamber in $\Delta=\Delta(H,B)$. Of course every chamber of $\Delta$ is of the form $gC$ for some $g\in H$, so $u$ acts trivially on $\Delta$. But $T$ contains the kernel of the action and $U\cap T=\{1\}$, so in fact $u=1$. We conclude that $U$ is finite.

We now want to show that $U$, or equivalently $\Delta$, is even trivial. Since $U$ is finite, $U=\overline{U}$, which we know is normal in $G$. Thus $U$ is normal in $H$. Now suppose $S\neq\emptyset$. Let $s\in S$, so by the $BN$-axioms $sBs\not\leq B$. But $s$ normalizes $T$, and since $U$ is normal in $H$ we know that $s$ also normalizes $U$, so this is impossible. We conclude that $S=\emptyset$, so $N=T\leq B$ and in fact $B=H$. Since the chambers of $\Delta$ are in one-to-one correspondence with $H/B$, we conclude that $\Delta$, and thus $U$, is trivial.
\end{proof}

\begin{lemma}\label{v_triv_implies_B_dense}
Let $G$ be a connected linear algebraic group, $H$ a Zariski-dense subgroup of $G$ and $B$ any subgroup of $H$. Then either $B$ has infinite index in $H$ or $B$ is Zariski dense in $G$.
\end{lemma}
\begin{proof}
Assume that $B$ has finite index in $H$. Let $h_1,\dots,h_n$ be a set of coset representatives for $H/B$, and let $\overline{B}$ be the Zariski closure of $B$ in $G$. Then $G=\overline{H}$ is the union of the cosets $h_1\overline{B},\dots,h_n\overline{B}$. Since $G$ is connected, $G=h_i\overline{B}$ for some $i$, and hence also $G=\overline{B}$.
\end{proof}

We are now in a position to prove Theorem~\ref{refine_capr_marq}.

\begin{proof}[Proof of Theorem~\ref{refine_capr_marq}]
Let $G$ be a reductive group and $H$ a Zariski-dense subgroup. Let $(B=U\rtimes T,N)$ be a split $BN$-pair of $H$ such that $[H:B]<\infty$. By Lemma~\ref{v_triv_implies_B_dense} $B$ is Zariski dense in $G$, and by Lemma~\ref{key_lemma}, $U$ is trivial.
\end{proof}

In particular if $H=G(k)$ this shows that Conjectures~\ref{conj1} and \ref{conj2} are equivalent. We immediately get the following:

\begin{corollary}[Extension of Theorems~3 and 4 from \cite{caprace11}]\label{extend_cap_marq}
Let $k$ be either a local field or a perfect field. Let $G$ be a reductive $k$-group that is anisotropic over $k$. Then $G(k)$ does not admit any non-trivial split spherical $BN$-pairs.\qed
\end{corollary}

\section{Unipotent-free groups and split spherical BN-pairs without rank 1 factors}\label{sec:big_rank}

Let $G$ be a group with a $BN$-pair $(B,N)$ of spherical type $(W,S)$. In this section, our standing assumption is that the Coxeter system $(W,S)$ has no direct rank 1 factors,
which means that the corresponding Coxeter diagram has no isolated nodes. As usual, we set $T = \displaystyle\bigcap_{w\in W}wBw^{-1}$.
By the main result of \cite{demedts05}, the existence of a splitting $B=U\rtimes T$ with nilpotent $U$ implies
that the building $\Delta=\Delta(G,B)$ is Moufang and $U=U_+$, the group generated by all the root groups $U_{\alpha}$ for $\alpha\in\Phi_+$. Here $\Phi$ is the root system of a fixed fundamental apartment corresponding to $N$, and $\Phi_+$ is the set of all $\alpha \in \Phi$ that contain the fundamental chamber corresponding to $B$.
In this section we prove Theorem~\ref{no_unip_thm} by inspecting the root structure.

Recall that the concepts of spherical Moufang buildings and spherical RGD systems are equivalent \cite{abr08}*{Example 7.83 and Theorem 7.116}.
The following is a general lemma about spherical (or just 2-spherical) RGD systems.

\begin{lemma}\label{noncomm_roots}
Let $(G,(U_{\alpha})_{\alpha\in\Phi}),T)$ be an RGD system of spherical type $(W,S)$, such that the Coxeter diagram of $(W,S)$ has no isolated nodes. Let $\Phi_+$ be a choice of positive roots and $\Pi\subseteq\Phi_+$ a choice of simple roots. Then for any simple root $\alpha\in\Pi$, there exists a simple root $\beta$ such that no non-trivial elements of $U_{\beta}$ commute with any non-trivial elements of $U_{\alpha}$.
\end{lemma}
\begin{proof}
Let $U_+$ and $B_+=U_+T$ be the usual subgroups. We consider the Moufang building $\Delta=\Delta(G,B_+)$ with fundamental chamber $C$ and fundamental apartment $\Sigma_0$.
Let $\alpha=\alpha_s$ be the simple root corresponding to $s\in S$, so $C \in\alpha$ but $sC \not\in\alpha$. Hence there exists a panel $P$ of $C$ in the boundary of $\alpha$, and $P$ has cotype $s$. Choose $t\in S\backslash\{s\}$ such that $s$ and $t$ are connected in the Coxeter diagram, and let $Q$ be the panel of $C$ of cotype $t$. Denote by $\beta$ the root containing $C$ and having $Q$ in its boundary, i.e. $\beta$ is the simple root $\alpha_t$. We set $A:=P\cap Q$, so $A$ has cotype $\{s,t\}$.

Let $\Delta':=\lk_{\Delta}(A)$ be the link of $A$ in $\Delta$, and set $\alpha':=\alpha\cap\Delta'$, $\beta':=\beta\cap\Delta'$, $C':=C\cap\Delta'$, and $\Sigma_0':=\Sigma_0\cap\Delta'$. By \cite{abr08}*{Proposition~7.32}, $\Delta'$ is strictly Moufang and we can identify $U_{\alpha'}$ and $U_{\beta'}$ with $U_{\alpha}$ and $U_{\beta}$ respectively, via the natural restriction map. In fact, since $A$ has codimension 2, $\Delta'$ is a generalized Moufang $n$-gon, and since $s$ and $t$ are connected in the Coxeter diagram we know that $n>2$.

Let $1\neq a\in U_{\alpha'}$ and $b\in U_{\beta'}$ and suppose $ab=ba$. Then $ba\beta'=ab\beta'=a\beta'$ and $C' \in a\beta'$ is fixed by $b$, so $b$ fixes $a\beta'$ pointwise.
Since $\alpha'\cap\beta'=\{C'\}$, $n>2$, and $a\neq 1$, we know that $\beta'\cup a\beta'$ contains a pair of opposite chambers. If $\Sigma'$ is the apartment containing these, clearly $b$ fixes $\Sigma'$ pointwise. But $\Sigma'$ also contains some chamber $D'$ of $\beta'$ that has no panels in $\partial\beta'$. Since $b$ fixes $\Sigma'$ and all chambers of $\Delta'$ adjacent to $D'$, by the rigidity theorem \cite{abr08}*{Corollary~5.206} we conclude that $b$ is the identity on $\Delta'$, and hence $b=1$. See Figure~\ref{fig} for an idea of the $n=3$ situation.

Now we return to the original building $\Delta$. If $1\neq a\in U_{\alpha}$ and $b\in U_{\beta}$ commute, then by the above argument $b$ acts trivially on $\lk_{\Delta}(A)$. In particular $b$ fixes any simplex joinable to $Q$. Since $Q\in\partial\beta$ this implies that $b=1$, and the result follows.
\end{proof}

\begin{figure}[h]
\caption{Example for $n$=3}
\label{fig}
\includegraphics[scale=.4]{roots_example.png}
\end{figure}

\begin{lemma}\label{nilp_implies_vabln}
Let $H$ be any nilpotent linear group having no non-trivial unipotent elements. Then $H$ is virtually abelian.
\end{lemma}
\begin{proof}
Assume $H\leq\GL_n(K)$ for some algebraically closed field $K$. Since $H$ is nilpotent, so is the Zariski closure $\overline{H}$. By \cite{borel91}*{Theorem~10.6(3)} then, the connected component $\overline{H}^0$ decomposes as a direct product of its semisimple and unipotent parts, $\overline{H}^0=(\overline{H}^0)_s\times(\overline{H}^0)_u$. Since $(\overline{H}^0)_s$ is abelian and the product is direct, we know that $[\overline{H}^0,\overline{H}^0]=[(\overline{H}^0)_u,(\overline{H}^0)_u]$. Now set $H':=H\cap\overline{H}^0$. Of course $[H',H']\leq H$, and also we see that $[H',H']\leq[(\overline{H}^0)_u,(\overline{H}^0)_u]$, which consists of unipotent elements. Since $H$ has no non-trivial unipotent elements, in fact $H'$ is abelian. Also, $[H:H']<\infty$ so indeed $H$ is virtually abelian.
\end{proof}

\begin{proof}[Proof of Theorem~\ref{no_unip_thm}]
Let $G$ be a reductive group and $H$ a Zariski-dense subgroup such that $H\cap G_u=\{1\}$. Let $(B=U\rtimes T,N)$ be a split spherical $BN$-pair of $H$ of type $(W,S)$ without rank 1 factors. We claim that $B=H$.
Since the Coxeter diagram of $(W,S)$ has no isolated nodes, we can use Lemma~\ref{noncomm_roots}. Let $\Delta=\Delta(H,B)$ with fundamental apartment $\Sigma_0$ and fundamental chamber $C$. Denote the root system by $\Phi$ and the root groups by $U_{\alpha}$, so $U=U_+=\langle U_{\alpha}\mid\alpha\in\Phi_+\rangle$. We know that $U$ is nilpotent, and so by Lemma~\ref{nilp_implies_vabln} we can choose $V\leq U$ abelian such that $[U:V]<\infty$.

Given any system of positive roots $\Phi_+$ and any simple root $\alpha \in \Phi_+$, Lemma~\ref{noncomm_roots} shows that we can choose a simple root $\beta$ such that no non-trivial elements of $U_{\alpha}$ commute with any non-trivial elements of $U_{\beta}$. Since $V$ is abelian, this shows that either $U_{\alpha}\cap V=\{1\}$ or $U_{\beta}\cap V=\{1\}$. In either case at least one of the root groups is finite. However, by the classification of Moufang polygons \cite{tits_weiss02}, if one of the root groups is finite then they must \emph{all} be finite. Since $\Delta$ is Moufang, this implies that $\Delta$ is \emph{locally finite}, i.e. each panel in $\Delta$ is contained in finitely many chambers. Thus for any $w\in W$ there are finitely many chambers of $\Delta$ at Weyl distance $w$ from $C$. Since $W$ itself is finite, we conclude that $\Delta$ is finite. By Theorem~\ref{refine_capr_marq} it is even trivial, and so the $BN$-pair is trivial.
\end{proof}

We now take a moment to discuss some examples of unipotent-free anisotropic groups. Let $D$ be a finite dimensional central $k$-division algebra and suppose $x\in D$ is unipotent. Then $x-1$ is a nilpotent element of $D$, which since $D$ is a division algebra implies that $x-1=0$ and $x=1$. In particular the anisotropic groups $D^{\times}$ and $\SL_1(D)$ are unipotent-free. The theorem tells us they admit no split spherical $BN$-pairs of rank greater than 1, though as we will see in the last section we can eliminate the rank-1 case as well.

Also, if $k$ is perfect then any anisotropic $G(k)$ is unipotent-free, as explained in \cite{caprace11}*{Proposition~4.1}. Thus the proof of Theorem~\ref{no_unip_thm} constitutes an alternate proof of Conjecture~\ref{conj1} in case $k$ is perfect, at least for $BN$-pairs of rank $\geq2$. Again, in the next section the rank-1 case will also be eliminated.

Note that the only time we used our precise setup in the proof of Theorem~\ref{no_unip_thm} was to see that if $U$ is nilpotent then it is already virtually abelian. In fact, the same proof yields the following

\begin{proposition}\label{v_abln_implies_triv}
Let $G$ be a group with a split spherical $BN$-pair $(B=U\rtimes T,N)$ of type $(W,S)$ without rank 1 factors. If $U$ is virtually abelian then $U$ is finite.\qed
\end{proposition}

It seems likely to us that this last proposition can be applied to other reductive anisotropic groups as well, even perhaps ones with unipotent elements, in which case we would conclude, applying Theorem~\ref{refine_capr_marq} again, that these $BN$-pairs are even trivial.

\section{Groups consisting of semisimple elements and split BN-pairs of any rank}\label{sec:any_rank}

In this section, we prove Theorem~\ref{all_ss_thm}. It is based on a more general criterion (see Proposition~\ref{T_v_triv_implies_triv}) that might even be applicable in more generality.

\begin{proposition}\label{B_not_v_nilp}
Let $G$ be a nonabelian reductive group over an algebraically closed field $K$, $H$ a Zariski-dense subgroup of $G$ and $A\leq H$ such that $|A\backslash H/A|<\infty$. Then $A$ is not virtually nilpotent.
\end{proposition}

We will not individually cite every result quoted in the proof, but all the details can be found in Chapters~13 and 14 of \cite{borel91}, unless otherwise cited.

\begin{proof}

If $|A\backslash H/A|<\infty$ and $\overline{H} = G$ is connected, then there exists a double coset $AhA$ ($h \in H$) that is Zariski-dense in $G$.
Now if $A$ were virtually nilpotent, also its Zariski closure $\overline{A}$ would be, and there would exist a closed connected nilpotent subgroup $M$ of $\overline{A}$ of finite index.
So $\overline{A}h\overline{A}$ would be a finite union of double cosets modulo $M$, and one of these would have to be dense in $G$. Hence our claim will follow if we can show that $MgM$ is not
dense in $G$, for any closed connected nilpotent subgroup $M$ of $G$ and any $g \in G$. For this it suffices to show $\dim{MgM} < \dim{G}$ (where we set $\dim{MgM} = \dim{\overline{MgM}}$),
and this is what we are going to do now.

First consider the case when $G$ is \emph{semisimple}. Choose a Borel subgroup $B$ of $G$ that contains $M$, and denote by $U$ the unipotent radical of $B$. As a closed connected nilpotent group,
$M$ is the direct product of a torus $T'$ and a unipotent subgroup $U'$, see \cite{borel91}*{Theorem~10.6}. Necessarily, $U'$ is a subgroup of $U$. Choose a maximal torus $T$ of $B$ that
contains $T'$. Let $\Phi$ be the root system associated to $G$ and $T$. Then $B$ determines a positive system $\Phi_+$ in $\Phi$. Recall that
$\dim{U} = |\Phi_+|$ and $\dim{G} = \dim{T} + |\Phi|$.

We want to show that $\dim{M} \leq \dim{U}$, which is clear if $T' = \{1\}$. The simple idea of the following argument is to deduce $\dim{U'} \leq \dim{U} - \dim{T'}$ from the fact that the
product $T' \times U'$ is direct. Order the positive roots $\Phi_+=\{\alpha_1,\dots,\alpha_m\}$, and for each $1\leq i\leq m$ denote the corresponding root group by $U_i:=U_{\alpha_i}$. Then the map $U_1\times\cdots\times U_m\rightarrow U$ given by multiplication is a bijection \cite{borel91}*{Proposition~14.4}. Next choose isomorphisms $x_i:(K,+)\rightarrow U_i$ for all $i$.
It follows (see \cite{borel91}*{Section~10.10}) that $tx_i(\lambda)t^{-1}=x_i(\alpha_i(t)\lambda)$ for $t\in T$, $\lambda\in K$. Then for any $u \in U'$, there exist uniquely determined
$\lambda_i\in K$ such that $\displaystyle u=\prod_{i=1}^m x_i(\lambda_i)$, and $tut^{-1} = \prod_{i=1}^m x_i(\alpha_i(t)\lambda_i)$ for all $t \in T$. Since $tut^{-1}=u$ for all $t \in T'$, we obtain

$$\prod_{i=1}^m x_i(\alpha_i(t)\lambda_i)=\prod_{i=1}^m x_i(\lambda_i) \quad \mbox{for }  t \in T'.$$
By uniqueness, for each $i$ such that $\lambda_i\neq0$ we must have $T'\leq\ker\alpha_i$. In particular we get that
\begin{align}\label{bound_on_U'}
U'\leq\prod_{i~:~T'\leq\ker\alpha_i}U_i.
\end{align}
Now consider the character groups $X(T)$ and $X(T')$. Let $\pi:X(T)\twoheadrightarrow X(T')$ be the restriction map, so $\ker\pi=\{\chi\in X(T)\mid T'\leq\ker\chi\}$. Also,
$$\dim{T}=\rk(X(T))=\rk(\ker\pi)+\rk(X(T'))=\rk(\ker\pi)+\dim{T'}$$
so $\rk(\ker\pi)=\dim{T}-\dim{T'}$.

Now let $\ell:=\dim{T}=\rk(X(T))$. By \cite{borel91}*{Theorem~13.18(3)} $\langle\Phi\rangle_{\mathbb{Z}}$ has rank $\ell$, so without loss of generality the first $\ell$ positive roots $\alpha_1,\dots,\alpha_{\ell}$
can be chosen to be linearly independent.
Since $\rk(\ker\pi)=\dim{T}-\dim{T'}$, only $\ell-\dim{T'}$ of the roots $\alpha_1,\dots,\alpha_{\ell}$ can be contained in $\ker\pi$. In particular at least $\dim{T'}$ of them are \emph{not} contained in $\ker\pi$. By \ref{bound_on_U'} we conclude that the dimension of $U'$ is less than or equal to $\dim{U}-\dim{T'}$, so indeed $\dim M = \dim{T'} + \dim{U'} \leq\dim U$.
Since $T$ is non-trivial (if $B = U$, then also $G = B = U$ by \cite{borel91}*{Corollary~11.5}, which contradicts our assumptions), it follows as claimed that
$$\dim{MgM} \leq 2\dim{M} \leq 2\dim{U} < \dim{T} + 2\dim{U} = \dim{G}.$$

We now consider the case when $G$ is \emph{reductive}. By \cite{borel91}*{Proposition~14.2}, $G$ decomposes as $G=SG_1$ with $S:=Z(G)^0$ and semisimple $G_1:=[G,G]$. Note that $G_1$ has the same root system $\Phi$ as $G$. Since $G$ is not abelian,  $G_1$ is non-trivial and hence not nilpotent, since semisimple. Choose a maximal torus $T$ of $G$; it has to contain $S$ since $ST$ is a torus. If we had $S = T$, then this were the unique maximal torus of $G$, implying (again by \cite{borel91}*{Corollary~11.5}) that $G$ is nilpotent, a contradiction.
Now let $M$ be a closed connected nilpotent subgroup of $G$, which without loss of generality contains $S$.
Obviously $M=S(M\cap G_1)$, and since $G_1$ is semisimple, the previous case implies $\dim(M\cap G_1)\leq|\Phi_+|$. Thus
$$\dim(MgM)=\dim((M\cap G_1)gM)\leq \dim(M\cap G_1)+\dim{M}\leq 2|\Phi_+|+\dim{S}.$$
Also, $G$ has dimension $2|\Phi_+|+\dim{T}>2|\Phi_+|+\dim{S}$, so we conclude that $MgM$ is not dense in $G$.
\end{proof}

\begin{proposition}\label{T_v_triv_implies_triv}
Let $G$ and $H$ be as in Proposition~\ref{B_not_v_nilp}. Let $(B=U\rtimes T,N)$ be a split spherical $BN$-pair of $H$, and suppose that the kernel of the action of $H$ on the building $\Delta=\Delta(H,B)$ has finite index in $T$. Then $U$ and $\Delta$ are trivial.
\end{proposition}
\begin{proof}
Denote by $Q$ the kernel of the action of $H$ on $\Delta$, so $[T:Q]<\infty$. Since $Q$ is normal in $H$, if we pass to the Zariski closure we get that $\overline{Q}$ is normal in $\overline{H}=G$.
Consider the canonical projection $\pi : G \twoheadrightarrow G/\overline{Q}$. It follows from \cite{borel91}*{Corollary~14.11} that $G/\overline{Q} = \pi(G)$ is reductive. Also $\pi(H)$ is
dense in $G/\overline{Q}$ since $G/\overline{Q} = \pi(\overline{H}) \subseteq \overline{\pi(H)}$. Since $(B,N)$ is a spherical $BN$-pair in $H$, $|B\backslash H/B|<\infty$, which implies
$|\pi(B)\backslash \pi(H)/\pi(B)|<\infty$. Next we note that $B/Q$ is virtually nilpotent since it is a semidirect product of $U$ and $T/Q$, and $|T/Q| < \infty$ by assumption. But then also
$\pi(B)$, which is isomorphic to $B/(B \cap \overline{Q})$ and hence to a quotient of $B/Q$, is virtually nilpotent. Combining all these facts, Proposition~\ref{B_not_v_nilp} now implies that
$G/\overline{Q}$ is \emph{abelian}. As above we have a decomposition $G=[G,G]Z(G)$ where $[G,G]$ is the commutator subgroup. Since $G/\overline{Q}$ is abelian, clearly $[G,G]\leq\overline{Q}$, so $G=\overline{Q}Z(G)$. Since $\overline{Q}\leq\overline{B}$, we can now apply Lemma~\ref{key_lemma} to conclude that $U$ and $\Delta$ are trivial.
\end{proof}

\begin{lemma}\label{rigidity_lemma}
Let $G$ be any linear algebraic group. Let $U$ be a nilpotent subgroup of $G$ consisting of semisimple elements, and $T$ any subgroup of $N_G(U)$. Then $[T:C_T(U)]<\infty$.
\end{lemma}
\begin{proof}
We first claim that $[U:Z(U)]<\infty$. Of course by Lemma~\ref{nilp_implies_vabln} we already know that $U$ is virtually abelian, but in the present context we can do even better. Indeed, the Zariski closure $\overline{U}$ is nilpotent, and so by \cite{borel91}*{Proposition~12.5} the semisimple part of the connected component $(\overline{U}^0)_s$ is central in $\overline{U}$. In particular $U\cap(\overline{U}^0)_s$ is central in $U$. But since $U$ consists of semisimple elements, $U\cap(\overline{U}^0)_s=U\cap\overline{U}^0$. This has finite index in $U$ and so indeed $[U:Z(U)]<\infty$.

Let $\{u_1,\dots,u_n\}$ be a set of coset representatives of $U/Z(U)$. For any $1\leq i\leq n$, the group $V_i:=\langle u_i,Z(U)\rangle$ is abelian and consists of semisimple elements, i.e. is diagonalizable. In particular by rigidity \cite{borel91}*{Corollary~8.10(2)}, we see that $[T:C_T(V_i)]<\infty$. This implies that the group $\displaystyle\bigcap_{i=1}^nC_T(V_i)$ has finite index in $T$. But if $t\in T$ centralizes every $V_i$ then of course $t$ centralizes $U$, so we conclude that indeed $[T:C_T(U)]<\infty$.
\end{proof}

We are now in a position to prove Theorem~\ref{all_ss_thm}. From now on $G$ is a reductive group over an algebraically closed field, and $H$ be a subgroup that is Zariski-dense in $G$ and consists only of semisimple elements.

\begin{proof}[Proof of Theorem~\ref{all_ss_thm}]
Let $(B=U\rtimes T,N)$ be a split spherical $BN$-pair of $H$, and let $\Delta=\Delta(H,B)$. We want to show that $\Delta$ is trivial. Let $\Sigma_0$ be the fundamental apartment in $\Delta$, with fundamental chamber $C$. Let $D$ be the chamber opposite $C$ in $\Sigma_0$, so any other chamber opposite $C$ in $\Delta$ is of the form $uD$ for some $u\in U$ (since $H$ acts strongly transitively on $\Delta$ and $B = UT$).
Now, if $t\in T$ commutes with every element of $U$ then clearly $t(uD)=utD=uD$. Thus the centralizer $C_T(U)$ of $U$ in $T$ is contained in the kernel of the action. Since $U$ is nilpotent and, by virtue of being contained in $H$, consists of semisimple elements, by Lemma~\ref{rigidity_lemma} in fact $[T:C_T(U)]<\infty$. In particular $T$ acts virtually trivially on $\Delta$, and so by Proposition~\ref{T_v_triv_implies_triv} $\Delta$ is trivial.
\end{proof}

\begin{corollary}\label{ss_cor}
Let $k$ be an infinite field. Let $G$ be reductive $k$-group such $G(k)$ consists of semisimple elements. Then $G(k)$ admits no non-trivial split spherical $BN$-pairs.\qed
\end{corollary}

In particular Conjecture~\ref{conj1} holds in case $G(k)$ consists of semisimple elements. If $G$ is $k$-anisotropic and $k$ is perfect then this is the case, by \cite{borel91}*{Proposition~4.2(5)} and the fact discussed earlier that $G(k)$ has no non-trivial unipotent elements. We thus have a second, different proof that Conjecture~\ref{conj1} holds when $k$ is perfect.

\section{Division algebras, and some conclusions}\label{sec:div_algs_and_conclusions}

As promised, in case $H=G(k)$ is the multiplicative or norm-1 group of a finite dimensional $k$-division algebra, we can also eliminate the rank-1 case. By the proof of Theorem~\ref{all_ss_thm} it suffices to show that if $(B=U\rtimes T,N)$ is any split spherical $BN$-pair of $H$, then $[T:C_T(U)]<\infty$. We prove this in the following

\begin{lemma}\label{div_alg_lemma}
Let $H$ be the multiplicative or norm-1 group of a finite dimensional $k$-division algebra $D$. Let $U\leq H$ be nilpotent and $T\leq N_H(U)$. Then $[T:C_T(U)]<\infty$.
\end{lemma}
\begin{proof}
Clearly $k[U]$ is a division subalgebra of $D$. Then the canonical faithful representation $k[U]\hookrightarrow\GL(k[U])\cong\GL_r(k)$ for $r=\dim_kk[U]$ is irreducible. Hence also the restricted representation $U\hookrightarrow\GL_r(k)$ is faithful and irreducible. By \cite{sup58}*{Theorem~27} we conclude that $[U:Z(U)]<\infty$. Now consider the action of $T$ on $U$ by conjugation. Clearly $Z(U)$ is normalized by this action, so we get a homomorphism $T\rightarrow\Aut(U/Z(U))$. Let $T_0$ denote the kernel of this map, so $T_0$ has finite index in $T$. Choose a transversal $\{u_1,\dots,u_r\}$ of $U/Z(U)$. For any $i$, $T_0$ normalizes the abelian group $V_i=\langle u_i,Z(U)\rangle$. If $k[V_i]$ denotes the subfield of $D$ spanned by $V_i$, we get a homomorphism $\phi_i:T_0\rightarrow\Aut(k[V_i]|k)$,
the kernel of which has finite index in $T_0$ (since $k[V_i]|k$ is a finite extension). In particular
$$\bigcap_{i=1}^r\ker\phi_i$$
has finite index in $T_0$, and thus in $T$. Of course any element of this subgroup centralizes each $V_i$, and so centralizes $U$. We conclude that indeed $[T:C_T(U)]<\infty$.
\end{proof}

\begin{corollary}\label{div_alg_cor}
If $H$ is the multiplicative or norm-1 group of a division ring, then $H$ admits no non-trivial split spherical $BN$-pairs.\qed
\end{corollary}

To summarize, at this point Conjecture~\ref{conj1} stands completely proved in case $k$ is local or perfect, or if $G(k)$ consists of semisimple elements, or if $G(k)$ is the multiplicative or norm-1 group of a finite dimensional $k$-division algebra. Also the conjecture stands proved modulo rank-1 $BN$-pairs if $G(k)$ contains no non-trivial unipotent elements.

Lastly we note that we have two main tools now to demonstrate that a split spherical $BN$-pair $(B=U\rtimes T,N)$ of a reductive anisotropic group is trivial. Namely, if the rank is greater than 1 it suffices to show $U$ is virtually abelian, by Proposition~\ref{v_abln_implies_triv}, and if the rank is arbitrary it suffices to show that $[T:C_T(U)]<\infty$, by Proposition~\ref{T_v_triv_implies_triv}. It is our hope that these criteria could prove useful in eventually establishing the full conjecture.

\renewcommand{\baselinestretch}{1}

\begin{bibdiv}
\begin{biblist}

\bib{abr08}{book}{
  author={Abramenko, Peter},
  author={Brown, Kenneth S.},
  title={Buildings: Theory and Applications},
  series={Graduate Texts in Mathematics},
  volume={248},
  publisher={Springer-Verlag},
  address={New York},
  date={2008},
  isbn={978-0-387-78834-0},
}

\bib{borel91}{book}{
  author={Borel, Armand},
  title={Linear Algebraic Groups},
  series={Graduate Texts in Mathematics},
  volume={126},
  publisher={Springer-Verlag},
  address={New York},
  date={1991},
  isbn={978-0-387-97370-8},
}

\bib{bortits65}{article}{
	author={Borel, Armand},
	author={Tits, Jacques},
	title={Groupes r\'eductifs},
	journal={Inst. Hautes \'Etudes Sci. Publ. Math.},
	volume={27},
	pages={55-150},
	date={1965},
}

\bib{caprace09}{article}{
	author={Caprace, Pierre-Emmanuel},
	author={Marquis, Timoth\'ee},
	title={Can an anisotropic reductive group admit a Tits system?},
	eprint={arxiv.org/PS_cache/arxiv/pdf/0908/0908.2577v1.pdf},
	date={2009},
}

\bib{caprace11}{article}{
	author={Caprace, Pierre-Emmanuel},
	author={Marquis, Timoth\'ee},
	title={Can an anisotropic reductive group admit a Tits system?},
	journal={Pure and Appl. Math. Quart.},
	volume={7 Nr. 3},
	pages={539-558},
	date={2011},
}

\bib{demedts05}{article}{
	author={De Medts, Tom},
	author={Haot, Fabienne},
	author={Tent, Katrin},
	author={Van Maldeghem, Hendrik},
	title={Split $BN$-pairs of rank at least 2 and the uniqueness of splittings},
	journal={J. Group Theory},
	volume={8(1)},
	pages={1-10},
	date={2005},
}

\bib{prasad11}{article}{
	author={Prasad, Gopal},
	title={Weakly-split spherical Tits systems in pseudo-reductive groups},
	eprint={arxiv.org/PS_cache/arxiv/pdf/1103/1103.5970v2.pdf},
	date={2011},
}

\bib{rapinchuk02}{article}{
	author={Rapinchuk, Andrei S.},
	author={Segev, Yoav},
	author={Seitz, Gary M.},
	title={Finite quotients of the multiplicative group of a finite dimensional division algebra are solvable},
	journal={J. Amer. Math. Soc.},
	volume={15(4)},
	pages={929-978},
	date={2002},
}

\bib{sup58}{book}{
  author={Suprunenko, Dmitrii},
  title={Soluble and nilpotent linear groups},
  series={Translations of Mathematical Monographs},
  publisher={Amer. Math. Soc.},
  volume={9},
  date={1958},
  isbn={978-0-821-83895-2},
}

\bib{tits_weiss02}{book}{
	author={Tits, Jacques},
	author={Weiss, Richard},
	title={Moufang Polygons},
	date={2002},
	publisher={Springer},
	series={Springer Monographs in Mathematics},
	isbn={978-3-642-07833-0},
}

\end{biblist}
\end{bibdiv}

\end{document}

redpajama_set_name: RedPajamaArXiv


text:
Har Avi'ad (: הר אביעד) je hora o nadmořské výšce 586 metrů v severním Izraeli, v Horní Galileji.

Má podobu plochého zalesněného návrší, situovaného cca 2 kilometry jihozápadně od vesnice Even Menachem, které se zvedá z podlouhlého zlomu, jenž sleduje severní stranu vádí Nachal Šarach. Výškový rozdíl mezi dnem údolí a těmito útesy přesahuje 100 metrů. Dál k jihozápadu pokračuje tento terénní zlom sérií dalších dílčích vrcholků Har Sar Šalom, na opačné straně je to kóta Har Conam.

Odkazy

Reference

Související články
 Štula

Hory a kopce v Izraeli
Galilea

redpajama_set_name: RedPajamaWikipedia


text:
Body of WWE's Shad Gaspard found after suspected drowning
Posted: May 20, 2020 / 09:05 AM EDT / Updated: May 20, 2020 / 03:07 PM EDT
FILE – In this June 28, 2015, file photo, WWE wrestler Shad Gaspard arriving at the Los Angeles premiere of "Terminator Genisys" at the Dolby Theatre in Los Angeles. The former World Wrestling Entertainment pro remained missing Tuesday, May 19, 2020 after being swept out to sea while swimming with his young son over the weekend off Southern California, police said. Gaspard's 10-year-old son Aryeh was rescued and several other swimmers made it out of the water safely after they were caught in a rip current Sunday afternoon at Venice Beach in Los Angeles. (Photo by Rich Fury/Invision/AP, File)
LOS ANGELES (AP) — The body of former World Wrestling Entertainment pro Shad Gaspard was found early Wednesday on Los Angeles' Venice Beach, after he was caught in a rip current last weekend, police said.
Patrol officers were flagged down around 1:25 a.m. by a person reporting that a body had washed ashore, a Police Department statement said.
He was identified as Gaspard and his family was notified, police said. Gaspard went missing last Sunday after he went swimming with his 10-year-old son, Aryeh.
The boy was rescued and several other swimmers made it out of the water safely.
Gaspard, 39, gained prominence in the WWE as one half of the tag-team group Cryme Tyme, along with his partner, JTG. After retiring in 2010, Gaspard has had small roles on TV and in movies, including the 2015 Kevin Hart comedy "Get Hard."
He was about 50 yards (46 meters) from shore when he was last spotted by a lifeguard, police said. A wave crashed over him and he was swept out to sea.
His wife, Siliana Gaspard, issued a statement Tuesday thanking authorities and fans.
"We would like to express our gratitude to the first responders who rescued Aryeh and to the lifeguards, coast guard, divers, fire and police departments for their continued efforts to help find our beloved Shad," the statement said.
This story has corrected the spelling of the tag team group to Cryme Tyme.
MUSKOGEE, Okla. (AP) — A federal judge in Oklahoma has ordered the new owners of an Oklahoma zoo featured in Netflix's "Tiger King" documentary to turn over all the lion and tiger cubs in their possession, along with the animals' mothers, to the federal government.
U.S. District Judge John F. Heil III issued the order last week in the case against Jeffrey and Lauren Lowe and the Greater Wynnewood Exotic Animal Park based on claimed violations of the Endangered Species Act and the Animal Welfare Act.
Berkshire County rolls out COVID-19 vaccine with minimal problems
Albany City Hall closing on Inauguration Day


Every 2019 combined rates mentioned above are the results of Vermont state rate (6%). There is no county sale tax for East Ryegate, Vermont. There is no city sale tax for East Ryegate. There is no special rate for East Ryegate.
The East Ryegate's tax rate may change depending of the type of purchase.


text:
Le Gouvernement provisoire russe ( – ) fut formé à Petrograd après l'abdication de Nicolas  et dirigea l'Empire russe qui devenait une éphémère République russe le , avant d'être renversé par la révolution d'Octobre.

Histoire

Dès la révolution de Février, l'autorité politique commença à se fissurer en deux institutions rivales : la Douma d'État de l'Empire russe et le Soviet de Petrograd entrèrent en compétition pour le pouvoir.

Après l'abdication de l'empereur, le  puis celle de son frère le grand-duc Michel le lendemain, et selon la volonté de ce dernier, un gouvernement provisoire devait diriger le pays jusqu'à ce qu'une assemblée constituante ait déterminé la nouvelle forme de gouvernement en Russie. Dans ce but fut réuni le  le quatrième Comité temporaire de la Douma d'État, présidé par l'octobriste Mikhaïl Rodzianko.

Le gouvernement provisoire était chargé d'organiser les élections définissant cette assemblée. Son pouvoir fut en réalité limité par l'autorité croissante du Soviet de Petrograd. Celui-ci contrôlait l'armée, les usines et les voies ferrées et avait le soutien des ouvriers, ce qui fit de cette période une période de cohabitation, bien que le Soviet ait initialement soutenu le gouvernement provisoire.

Ce gouvernement fut d'abord dirigé par le prince Gueorgui Lvov puis par Aleksandr Kerenski. Il parvint à organiser les élections, mais pas à désengager la Russie de la Première Guerre mondiale, ce qui affaiblit sa popularité auprès du peuple, qui en supportait le poids. En fait, il lança même une offensive contre les armées allemande et austro-hongroise en . Ce gouvernement renâclait à prendre des décisions politiques importantes, précisément parce qu'il était supposé être provisoire. Cette brèche fut exploitée aussi bien par la droite, sous la forme de l'affaire Kornilov, que par la gauche, qui mit fin au gouvernement provisoire par la révolution d'Octobre, transférant le pouvoir suprême aux soviets, alors aux mains des bolcheviks. Ces derniers remplacèrent le gouvernement par le leur. Jusqu'à la dissolution de l'assemblée constituante russe, le gouvernement bolchevique fut qualifié de « provisoire ».

Formation du Gouvernement provisoire

Ci-dessous, l'annonce de la formation du Gouvernement provisoire, telle que publiée dans les Izvestia du .

Il y avait en tout seize ministres dans le gouvernement provisoire.

Comité exécutif provisoire

Le Comité exécutif provisoire abrégé en C.E.P. était constitué de députés sociaux-démocrates menchéviks, Nicolas Tcheidze (Nicolas Tchkhéidzé), président, et , du travailliste Kerenski, de Gvozdev et des membres du C.C.I.G., du premier chef du Soviet de 1905 (Khrustalov-Nosar) et de quelques dirigeants socialistes de Pétrograd dont Sokolov et Pankov. Durant la révolution russe, le , ils ont appelé au premier acte révolutionnaire des responsables socialistes avec leurs messages :

« Citoyens ! Les représentants des ouvriers, des soldats et de la population, réunis à la Douma, déclarent que la première séance de vos délégués aura lieu aujourd'hui à 7 heures du soir à la Douma de l'Empire. Que tous les soldats qui sont passés du côté du peuple choisissent sans retard leurs députés, à raison d'un par compagnie. Que les usines choisissent leurs députés dans la proposition d'un par . Les usines de moins de  enverront également un député ».

Un gouvernement de coalition
Au mois de , le gouvernement d'origine libérale devient coalition avec l'entrée d'Irakli Tsereteli, social-démocrate menchevik, nommé au ministère des Postes et des Télégraphes, puis à l'Intérieur ; et du fondateur du Parti socialiste révolutionnaire, Victor Tchernov, au ministère de l'Agriculture.

Premiers ministres du gouvernement provisoire
 Prince Gueorgui Lvov (-)
 Aleksandr Kerenski (-)

Notes et références

Bibliographie

 .

Révolution russe
Histoire de la Russie pendant la Première Guerre mondiale
1917 en Russie
Russie
Histoire de Saint-Pétersbourg