text:
Q: How to parameterize 12/30/1899 to SQL Server native client when DataTypeCompatility is on? Short Version
Trying to pass the datetime value 12/30/1899 to SQL Server, fails with Invalid date format - but only for the native client drivers, and only in DataTypeCompatiblity mode.
Long Version
When trying to use parameterized queries in ADO, against SQL Server:
SELECT ?

I parameterize the datetime value as an adDBTimeStamp:
//Language agnostic, vaguely C#-like pseudo-code
void TestIt()
{
   DateTime dt = new DateTime("3/15/2020");
   VARIANT v = DateTimeToVariant(dt);

   Command cmd = new Command();
   cmd.CommandText = "SELECT ? AS SomeDate";
   cmd.Parameters.Append(cmd.CreateParameter("", adDBTimeStamp, adParamInput, 0, v);

   Connection cn = GetConnection();
   cmd.Set_ActiveConnection(cn);
   cmd.Execute(out recordsAffected, EmptyParam, adExecuteNoRecords);
}

And that works fine when the date is 3/15/2020.
You create a VARIANT, with a VType of 7 (VT_DATE), and a value that is an 8-byte floating point value:
VARIANT
   Int32  vt = 7; //VT_DATE
   Double date = 0;

But it fails on 12/30/1899
If I do the same test code with one particular datetime, it fails:
void TestIt()
{
   DateTime dt = new DateTime("12/30/1899");
   VARIANT v = DateTimeToVariant(dt);

   Command cmd = new Command();
   cmd.CommandText = "SELECT ? AS SomeDate";
   cmd.Parameters.Append(cmd.CreateParameter("", adDBTimeStamp, adParamInput, 0, v);

   Connection cn = GetConnection();
   cmd.Set_ActiveConnection(cn);
   cmd.Execute(out recordsAffected, EmptyParam, adExecuteNoRecords);
}

The ADO OLEDB provider throws an exception (i.e. before it even reaches SQL Server):
Invalid date format

But it doesn't happen with all SQL Server OLEDB providers
When debugging this issue, I realized it doesn't happen with all of the SQL Server OLEDB providers. Microsoft generally has 4 OLE DB Providers for SQL Server:

*

*SQLOLEDB: Microsoft OLE DB Provider for SQL Server (has shipped with Windows since Windows 2000)

*SQLNCLI: SQL Server Native Client (shipped with SQL Server 2005)

*SQLNCLI10: SQL Server Native Client 11.0 (shipped with SQL Server 2008)

*SQLNCLI11: SQL Server Native Client 12.0 (shipped with SQL Server 2012)

*MSOLEDBSQL: Microsoft OLE DB Driver for SQL Server (shipped with SQL Server 2016)

When trying it with some different providers, it does work fine for some:

*

*SQLOLEDB: Works

*SQLNCLI11 (without DataTypeCompatibility): Works

*SQLNCLI11 (with DataTypeCompatiility on): Fails

DataTypeCompatibility?
Yes. ActiveX Data Objects (ADO), a friendly COM wrapper around the unfriendly COM OLEDB API, doesn't understand the new date, time, xml, datetime2, datetimeoffset data types. New OLEDB data type constants were created to represents these new types. So any existing OLEDB applications wouldn't understand the new constants.
To that end, a new keyword is supported by the "native" OLE DB drivers:

*

*DataTypeCompatibility=80
which you can add to your connection string:

"Provider=SQLNCLI11; Data Source=screwdriver; User ID=hatguy; Password=hunter2;DataTypeCompatibility=80;"

This instructs the OLEDB driver to only return OLEDB data types that were in existance when OLEDB was first invented:

SQL Server data type
SQLOLEDB
SQLNCLI
SQLNCLI (w/DataTypeCompatibility=80)

Xml
adLongVarWChar
141 (DBTYPE_XML)
adLongVarChar

datetime
adDBTimeStamp
adDBTimeStamp
adDBTimeStamp

datetime2
adVarWChar
adDBTimeStamp
adVarWChar

datetimeoffset
adVarWChar
146 (DBTYPE_DBTIMESTAMPOFFSET)
adVarWChar

date
adVarWChar
adDBDate
adVarWChar

time
adVarWChar
145 (DBTYPE_DBTIME2)
adVarWChar

UDT

132 (DBTYPE_UDT)
adVarBinary (documented,untested)

varchar(max)
adLongVarChar
adLongVarChar
adLongVarChar

nvarchar(max)
adLongVarWChar
adLongVarWChar
adLongVarWChar

varbinary(max)
adLongVarBinary
adLongVarBinary
adLongVarBinary

timestamp
adBinary
adBinary
adBinary

And there's the failure
When:

*

*trying to parameterize a datetime value

*with a value of 12/30/1899

*when using a "native client" driver

*and DataTypeCompatilibty is on

*the driver itself chokes on the value

*when its value is, in fact perfectly fine.

There's nothing inherently wrong with trying to use a date of '12/30/1899`:

*

*SELECT CAST('18991230' AS datetime) works fine

*it works fine in the original OLE DB driver

*it works fine in the "native" OLE DB drivers

*it just fails in the native driver with DataTypeCompatibility on

Obviously this is a bug in Microsoft OLE DB drivers. But it's an absolute truth that Microsoft will never, ever, ever, EVER, fix the bug.
So how to work-around it?
I can detect this special datetime, and I can try to work around this bug in our data access layers.

*

*But I need a value I can place into a VARIANT structure,

*that represents 12/30/1899 12:00:00 AM

*that works under SQOLEDB

*and under SQLNCLIxx drivers

*and under MSOLEDBSQL driver

*in DataTypeCompatibilityMode

*(and what the hell, even with the mode off - although it's invalid to use ADO without it on)

T-SQL generated by the driver
When the OLE DB driver does bother to actually do what i say, we can profile the RPC generated:
SQOLEDB

exec sp_executesql N'SELECT @P1 AS SomeDate',N'@P1 datetime','1899-12-30 00:00:00'

SQLNCLI11

exec sp_executesql N'SELECT @P1 AS SomeDate',N'@P1 datetime2(0)','1899-12-30 00:00:00'

CMRE (Delphi)
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  ComObj,
  ActiveX,
  ADOdb,
  ADOint,
  Variants;

function GetConnection(Provider: string; DataTypeCompatibility: Boolean): _Connection;
var
    connectionString: string;
begin
{
    SQLOLEDB - Default provider with Windows
    SQLNCLI11 - SQL Server 2008 native client
}
    connectionString := 'Provider='+Provider+'; Data Source=screwdriver;User ID=hydrogen;Password=hunter2;';
    if DataTypeCompatibility then
        connectionString := connectionString+'DataTypeCompatibility=80';

    Result := CoConnection.Create;
    Result.Open(connectionString, '', '', adConnectUnspecified);
end;

procedure Test(ProviderName: string; DataTypeCompatibility: Boolean);
var
    dt: TDateTime;
    v: OleVariant;
    cmd: _Command;
    cn: _Connection;
    recordsAffected: OleVariant;
    s: string;
begin
    dt := EncodeDate(1899, 12, 30);// 12/30/1899 12:00:00 AM (also known in Delphi as zero)
    v := dt; //the variant is of type VT_DATE (7)

    cmd := CoCommand.Create;
    cmd.CommandText := 'SELECT ? AS SomeDate';
    cmd.Parameters.Append(cmd.CreateParameter('', adDBTimeStamp, adParamInput, 0, v));

    try
        cn := GetConnection(ProviderName, DataTypeCompatibility);
    except
        on E: Exception do
            begin
                WriteLn('Provider '+ProviderName+' not installed: '+E.message);
                Exit;
            end;
    end;

    if SameText(ProviderName, 'SQLOLEDB') then
        s := ''
    else if DataTypeCompatibility then
        s := ' (with DataTypeCompatibility)'
    else
        s := ' (without DataTypeCompatibility)';

    cmd.Set_ActiveConnection(cn);
    try
        cmd.Execute({out}recordsAffected, EmptyParam, adExecuteNoRecords);
        WriteLn('Provider '+ProviderName+s+': success.');
    except
        on E:Exception do
            begin
                WriteLn('Provider '+ProviderName+s+' failed: '+E.Message);
            end;
    end;

end;

procedure Main;
begin
    CoInitialize(nil);

    Test('SQLOLEDB', False);        //SQL Server client that ships with Windows since 2000

    Test('SQLNCLI', False);     //SQL Server 2005 native client
    Test('SQLNCLI', True);      //SQL Server 2005 native client, w/ DataTypeCompatibilty

    Test('SQLNCLI10', False);   //SQL Server 2008 native client
    Test('SQLNCLI10', True);    //SQL Server 2008 native client, w/ DataTypeCompatibilty

    Test('SQLNCLI11', False);   //SQL Server 2012 native client
    Test('SQLNCLI11', True);    //SQL Server 2012 native client, w/ DataTypeCompatibilty

    Test('MSOLEDBSQL', False);  //SQL Server 2016 native client
    Test('MSOLEDBSQL', True);   //SQL Server 2016 native client, w/ DataTypeCompatibilty
end;

begin
  try
    Main;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
    WriteLn('Press enter to close');
    ReadLn;
end.

And while this is not a Delphi-specific question; I am using Delphi. So it's tagged as Delphi. If you complain I'm going to choke your tongue out.

Note: This is not ADO.net, it is ADO. It is not managed .NET Framework Class Library, it is the native Win32 COM OLE DB API.

A: BrakNicku had the answer.

Set NumericScale property of your parameter to anything in 1-7 range.

Changing the code from:
Parameter p = cmd.CreateParameter("", adDBTimeStamp, adParamInput, 0, v);

to
Parameter p = cmd.CreateParameter("", adDBTimeStamp, adParamInput, 0, v);
p.NumericScale = 1;

works.
It even works with SQLOLEDB driver against SQL Server 2000.
Precision and Scale of different data types
Returning rowsets from SQL Server containing different data types, i can ask OLEDB what the Precision, and NumericScale of various T-SQL data types are:
SQL Server type   ADO type               Precision  NumericScale  DefinedSize
----------------  ---------------------  ---------  ------------  -----------
int               adInteger (3)          10         255           4
real              adSingle (4)           7          255           4
money             adCurrency (6)         19         255           8
bit               adBoolean (11)         255        255           2
tinyint           adUnsignedTinyInt (17) 3          255           1
bigint            adBigInt (20)          19         255           8
uniqueidentifier  adGUID (72)            255        255           16
char(35)          adChar (129)           255        255           35
nchar(35)         adWChar (130)          255        255           35
decimal(15,5)     adNumeric (131)        15         5             19
datetime          adDBTimeStamp (135)    23         3             16
varchar(35)       adVarChar (200)        255        255           35
text              adLongVarChar (201)    255        255           2147483647
varchar(max)      adLongVarChar (201)    255        255           2147483647
nvarchar(35)      adVarWChar (202)       255        255           35
nvarchar(max)     adLongVarWChar (203)   255        255           1073741823
xml               adLongVarWChar (203)   255        255           1073741823
image             adLongVarBinary (205)  255        255           2147483647
varbinary(max)    adLongVarBinary (205)  255        255           2147483647

Since SQL Server returns a datetime field with a NumericScale of 3; there may be a virtue in changing:
Parameter p = cmd.CreateParameter("", adDBTimeStamp, adParamInput, 0, v);
p.NumericScale = 1;

to
Parameter p = cmd.CreateParameter("", adDBTimeStamp, adParamInput, 0, v);
p.NumericScale = 3;

Bonus Reading
Don't ever, ever, EVER try to parameterize a datetime as adDBTimestamp. There are data-loss bugs in Microsoft's SQL Server OLEDB drivers (all of them):

*

*SQLOLEDB (1999) - Fails

*SQLNCLI (2005) - Fails

*SQLNCLI10 (2008) - Fails

*SQLNCLI11 (2010) - Fails

*MSOLEDBSQL (2012) - Fails

The correct answer is to parameterize all datetime values as a string (e.g. adVarChar) using the "ODBC 24-hour format":

*

*yyyy-mm-dd hh:mm:ss.zzz

*2021-03-21 18:16:22.619


Welcom to coonbox.com, the best free racing games online. We have collected together all the top casual games for you to play in one website. New, it has games received a rating of 36.7 / 100 from 42450 votes. Our main game is racing games, including car racing games, motorcycle racing games, bike games, truck games, parking games, atv games and other games. By repeatedly games, find the game skills, improve their technique in the game, won the championship in the race.


text:
<!DOCTYPE html>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Report-a-Bug</title>
    <link rel="stylesheet" href="/styles/main.css">

{{user.email}} | Sign out

                  Report A Bug

Use this form to log a new bug against the
                          Chromium project.

                            URL:
                            {{url}}

                            Chrome Version:

                            Target Element:

                            Provider:
                            {{provider}}

                            Project:
                            {{project}}

                      <form method="post" action="{{postback_url}}" id="f" name="f" class="block" onsubmit="return validate()">

                          <input name="url" value="{{url|urlencode}}" type="hidden">
                          <input name="target_element" value="{{target_element|urlencode}}" type="hidden">
                          <input name="version" value="{{version|urlencode}}" type="hidden">
                          <input name="provider" value="{{provider}}" type="hidden">
                          <input name="project" value="{{project}}" type="hidden">

                                Title:*
                                <input value="" name="title" style="width: 100%;" type="text">

Other browsers tested:

                                  safari 4:

                                  <input value="Ok" name="safari4" type="radio">Ok
                                  <input value="Fail" name="safari4" type="radio">Fail
                                  <input value="Not Verified" name="safari4" checked="true" type="radio">Not Verified

                                  firefox 3.x:

                                  <input value="Ok" name="firefox3" type="radio">Ok
                                  <input value="Fail" name="firefox3" type="radio">Fail
                                  <input value="Not Verified" name="firefox3" checked="true" type="radio">Not Verified

                                  ie7:

                                  <input value="Ok" name="ie7" type="radio">Ok
                                  <input value="Fail" name="ie7" type="radio">Fail
                                  <input value="Not Verified" name="ie7" checked="true" type="radio">Not Verified

                                  ie8:

                                  <input value="Ok" name="ie8" type="radio">Ok
                                  <input value="Fail" name="ie8" type="radio">Fail
                                  <input value="Not Verified" name="ie8" checked="true" type="radio">Not Verified

                                  What steps repro the problem?:
                                  *

                                  <textarea name="repro" style="width: 100%;" rows="4">1.
2.
3.
4. </textarea>

                                  What is the expected result?:
                                  *

                                  <textarea name="expected" style="width: 100%;" rows="4"></textarea>

                                  What happens instead?:
                                  *

                                  <textarea name="actual" style="width: 100%;" rows="4"></textarea>

                                  Please provide any additional information:

                                  <textarea name="additionalInfo" style="width: 100%;" rows="4"></textarea>

                                  (e.g. only repros after a browser restart, observed 20% of the time, etc.)

                                  <input value="Submit this report" type="submit">

                      </form>

    © 2010

redpajama_set_name: RedPajamaGithub


text:
Debates of May 9th, 1996
House of Commons Hansard #43 of the 35th Parliament, 2nd Session. (The original version is on Parliament's site.) The word of the day was amendment.
Point Of Order
Government's Response To Petitions
Committees Of The House
Canada Labour Code
Food And Drugs Act
Equal Treatment Of People Cohabiting In A Relationship Similar To A Conjugal Relationship Act
Department Of Labour Act
Questions On The Order Paper
Canadian Human Rights Act
City Of Montreal
National Nursing Week
National Forest Week
Westray Mine Disaster
Parti Quebecois
Unemployment Insurance Reform
The Senate
Laval Space Camp
Presence In Gallery
Business Of The House
Natural ResourcesOral Question Period
Gilles Duceppe Bloc Laurier—Sainte-Marie, QC
Mr. Speaker, the minister was quite right to call the Reform Party to order, but she could have taken the time to reply to the question, and especially to read the throne speech, which clearly says "withdraw from its functions". But yesterday the minister said the opposite, a bit like the former Deputy Prime Minister. I quote her again:
"Let there be no mistake that there are key federal areas where we will continue to be involved in both forestry and mining".
This contradicts point by point what was said in the throne speech.
So that no mistake is made, could the minister and this government be clear on this issue? Will she admit that the promise made in the throne speech means no more than the red book promise with respect to the GST? Will she realize that she has no more credibility than Sheila Copps?
Edmonton Northwest Alberta
Anne McLellan LiberalMinister of Natural Resources
Mr. Speaker, let me reiterate to the hon. member that we intend to keep this promise and we are keeping this promise.
This promise is about sorting out responsibilities. I assure the hon. member those areas that we continue to be involved with in forestry are within federal jurisdiction, for example the 25 per cent of forests on federal crown lands, the First Nations and their lands. Forestry is an important aspect of their economic self-sufficiency. National issues in relation to science and technology-
The Acting Speaker (Mr. Kilger)
The hon. member for Calgary Northeast.
BenefitsOral Question Period
Art Hanger Reform Calgary Northeast, AB
Mr. Speaker, yesterday the justice minister was forced to acknowledge the existence of his secret long term policy agenda listing future initiatives on family, dependant benefits for same sex couples and changes to marital and family status.
Canadians deserve honesty and open debate on these issues. Instead, policy agendas are hidden in the minister's drawer, away from Canadians and even members of his own caucus.
Here is a straightforward question for the minister. Will he table all discussion papers and policy initiatives related to same sex benefits or will he admit today he has no intention of pursuing these divisive policies?
Saint-Maurice Québec
Jean Chrétien LiberalPrime Minister
Mr. Speaker, the minister replied very clearly yesterday. We are voting on Bill C-33 at this moment to make sure there is no discrimination against any part of society.
On the rest he gave an explanation that there are and will be cases in front of the courts. Citizens can appear before courts. Of course the Minister of Justice has to defend the Canadian position, and the Canadian position is the human rights act. The courts
decide according to the laws of Parliament. The minister said he is ready to defend the position of the government before any court.
Mr. Speaker, yes, we are talking about the justice minister and the Liberal Party's long term agenda.
Same sex couples and marital and family status were not in the red book or in the throne speech. The justice minister denied intentions to move ahead on these initiatives. The House voted down marital benefits for same sex couples. This is a matter of integrity and democracy. He has demonstrated a profound lack of respect for both.
Will the minister commit today to challenge any future court decision which extends marital or family benefits to same sex couples based on the court's interpretation of amendments to the human rights act, yes or no?
Mr. Speaker, the Minister of Justice and Attorney General of Canada will always perform in court the duties of the Attorney General of Canada. He is very capable and we are very privileged to have a man of his knowledge and stature as the Attorney General of Canada and Minister of Justice.
Coast GuardOral Question Period
Yvan Bernier Bloc Gaspé, QC
Mr. Speaker, my question is for the Prime Minister.
This afternoon, the Minister of Fisheries and Oceans will disclose his new fee schedule for the coast guard. Along with a near majority of Canadian stakeholders, the Great Lakes Commission, a U.S. organization representing the eight states bordering the Great Lakes, sent Raymond Chrétien, the Canadian ambassador in Washington, a letter asking the Canadian government to delay the implementation of its new fee schedule for coast guard services.
Since the unilateral imposition of a coast guard fee schedule could have serious repercussions on trade with the U.S., will the Prime Minister act on this request by the U.S. and ask his minister to delay his decision?
Bonavista—Trinity—Conception Newfoundland & Labrador
Fred Mifflin LiberalMinister of Fisheries and Oceans
Mr. Speaker, the hon. member knows these fees are not unilateral. They were voted on in the House of Commons. They were put forward in a study done last year. They were put forward by the Marine Advisory Board, which involves members of the industry from across Canada. They were studied. There were consultations with 850 organizations and individuals right across the country. They were tried four different ways. They were rearranged. The were reiterated. They were refined.
Everything possible that could be done with these fees to make them fair and equitable has been done. After the fees are implemented there will be studies to ensure they are fairly done and fairly put together with respect to marine services.
We are looking at 11 per cent of the overall fees for the coast guard marine services and the aids to navigation at less than an average of 3 per cent of the overall port charges.
Mr. Speaker, my supplementary question is again for the Prime Minister because the Minister of Fisheries and Oceans has just said once again that he would first implement the new fee schedule and then conduct a review. This makes no sense.
I wish to remind the Prime Minister that, according to the stakeholders who appeared before the fisheries and oceans committee, and according to the Great Lakes Commission, the new fee schedule will have serious consequences.
Does the Prime Minister realize that, by letting his Minister of Fisheries and Oceans blindly go ahead with his new fee schedule, he is endangering thousands of jobs as well as the economies of the regions along the St. Lawrence and around the Great Lakes?
Mr. Speaker, before the announcement of the basic fee structure in January, there was an IBI study carried out by consultants essentially to show the impact on the industry could be absorbed.
The results were positive and showed the impact could easily be absorbed at the level of $20 million spread in accordance with the prorated use of marine services.
I must tell the hon. member I am not proceeding in the blind. I am proceeding with the consultation of 850 other organizations and people, and the fees will proceed as planned.
PovertyOral Question Period
Jean Augustine Liberal Etobicoke—Lakeshore, ON
Mr. Speaker, 1996 has officially been declared the United Nations international year for the eradication of world poverty. Can the secretary of state tell the House what Canada is doing to play its part in the international arena to help eradicate world poverty?
Northumberland Ontario
Christine Stewart LiberalSecretary of State (Latin America and Africa)
Mr. Speaker, I am pleased to respond to my colleague's question on behalf of our Minister for International
Co-operation who takes major responsibility in the government for international poverty issues.
Canada is very committed to the issues of international poverty and works together with the multilateral community to effect progress. We have seen some progress but we hope that by the year 2015 we with the international community will be able to reach some further significant targets.
Canada works by providing up to 25 per cent of its official development assistance for programs of health and education, clean water, sanitation, micro enterprise works, programs that will have a benefit for women. We will continue to work with the international community to do more in this field.
Stephen Harper Reform Calgary West, AB
Mr. Speaker, my question is for the Prime Minister. I realize the Liberals want a new leader but that is their problem. I will ask the Prime Minister a question anyway.
Max Yalden, the former head of the human rights commission, testified before a parliamentary committee in 1994: "We believe that if sexual orientation is included by the courts in the act and even if it is more obviously included by Parliament, it would be discriminatory on the ground of sexual orientation to give benefits of one sort or another to a common law couple and yet deny them to a same sex couple".
Why do the Prime Minister and the government insist exactly the opposite is true when the commission charged with administering the act disagrees with their opinion?
Mr. Speaker, we are voting on a bill in the House of Commons that will ensure there is no discrimination against anybody based on sexual orientation. The completion of this human rights act makes Canada a country in which people with a different language, different colour, different religion and some with different sexual orientation can live. It is a society of tolerance that we have in Canada and we will be voting for that this afternoon.
What the judges decide, they will decide. If Parliament has to legislate, Parliament will legislate. There will be non-discrimination enshrined for the people who happen to be homosexual in Canadian society.
Mr. Speaker, the Prime Minister's answer does not address the question.
The Canadian Human Rights Commission disagrees with his interpretation. The justice minister in past statements disagrees with that position. Justice Lamer in the Mossop decision disagreed with that position. Even members of his own party disagree with that position. The MP for Ontario said-
The question, please.
Mr. Speaker, if the Prime Minister is committed to the idea that it is not discrimination to refuse to provide same sex benefits, will he amend the human rights act to make that absolutely clear?
The question is out of order. The hon. member for Matapédia-Matane.
René Canuel Bloc Matapédia—Matane, QC
Mr. Speaker, my question is for the Minister of Fisheries and Oceans.
On May 7, 1996, the coast guard informed its St. Lawrence region employees of the upcoming transfer of the Wilfrid-Laurier , an icebreaker, to the west coast region, before the coast guard advisory committee has completed its study on icebreaking operations in the St. Lawrence.
How can the Minister of Fisheries justify that, before the committee even got a chance to complete its study of icebreaking operations, one of the five icebreakers making up the St. Lawrence fleet based in Quebec is taken away, from Quebec again, while there are still nine icebreakers based in Nova Scotia, where they do not even have ice in winter?
Mr. Speaker, what the hon. member is talking about is the reduction in marine services.
The Bloc wants it both ways. It wants to not have marine service fees and have the taxpayers pay for that, the small taxpayers. It wants to reduce the fees but it does not want to reduce the services.
Which way does he want it? The hon. member cannot have it both ways.
Mr. Speaker, following this cut carried out without consultation, in which 50 employees may lose their jobs, will the Minister of Fisheries undertake not to transfer the icebreaker before the advisory committee has completed its study?
Mr. Speaker, one of the comments and one of the observations made as we went forward with the marine service fees was that the
coast guard, aids to navigation and marine services cost too much. We take people seriously. We looked at the requirement to reduce and we are reducing.
Last year we reduced $27 million. This year we will be reducing $30 million. By the turn of the century we will be saving the taxpayer and the Government of Canada $200 million a year, which is good news to all taxpayers.
May 9th, 1996 / 2:55 p.m.
Monte Solberg Reform Medicine Hat, AB
Mr. Speaker, yesterday and again today members of the Reform Party asked question of the government with respect to future plans to grant spousal benefits for sexual orientation. We understand that on the document passed around MC stands for memorandum to cabinet. We understand now that cabinet has discussed this issue.
I wonder if the Prime Minister would care to inform Canadians precisely what cabinet has decided with respect to future benefits for gays and lesbians.
Mr. Speaker, the only discussion we have had is the bill which is in front the House at this moment. That is the only legislation. What goes on in cabinet is part of the cabinet. The result of the work of cabinet is bills that we introduce in the House of Commons. That is it.
Right now we have a bill that will be passed and it will be progress for Canadian society.

redpajama_set_name: RedPajamaCommonCrawl


text:
Donegal Rally – Are we there yet?
2016, Donegal International Rally / By Sean Hassett
With the Joule Donegal International Rally just under a week away, the excitement continues to build. Final prep of man (woman) and machine is continuing at a frantic pace. This weekend sees the start of the recce for all the crews. This is where the crews drive the stages at normal speeds in their road cars making pacenotes which will allow them to drive at their maximum on the weekend of the 17th-19th of June. With crews normally taking two days to complete the recce, hotel and Bed and Breakfast rooms are at a premium. Also restaurants, cafes and shops along the route will benefit as drivers and co-drivers need to be refuelled.
This year's route has a familiar look to it, with crews assembling at the An Grianan Theatre for a safety briefing. They are then ready to tackle the Friday stages, which are located in the Letterkenny/ Ballybofey area with centralised service at the rear of the Clanree Hotel.
Saturday kicks off with awesome Knockalla stage which sees the crews start alongside Ballymastocker Bay and climb and weave along the coast road towards Rathmullan before turning inland to complete a loop of tighter twisting roads. Then on to the Garrygort stage which brings the crews into service, they then repeat these two stages. In the afternoon the crews tackle stages in the Gartan Lake and Carnhill area, again these stages are repeated. Centralised service for both Saturday and Sunday is the Mart in Milford.
Sunday has three of the most famous stage names in Irish Rallying, with crews tackling Glen, Atlantic Drive and Fanad, these stages will be completed twice. These roads are part of the beautiful Wild Atlantic Way, but drivers and co-drivers will not have time to enjoy the views. They will be battling for every second as it will decide the overall order and class positions.
When the crews arrive back at the Mount Errigal Hotel on Sunday evening, celebrations will commence and the party has been known to continue for days!!!! Others will have had a difficult weekend, but no doubt will have a story to tell. This is what makes the 'Donegal Experience' so special, everyone has a story, so come along and write your own chapter.


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
Mycologia 51(3): 382 (1959)

#### Original name
Mycena aconquijensis Singer

### Remarks
null


BI hosted the 43rd European Finance Association (EFA) Annual Meeting on August 17-20, 2016. BI also hosted the EFA in 1996. For overview, see EFA homepage.
2018 Annual Conference on International Finance, 22nd June 2018. Oslo.
The 3rd BI-SHoF Conference in Asset Pricing and Financial Econometrics. June, 2017.
The 5th CAPR Workshops on Investment and Production Based Asset Pricing, June, 2016. Programme.
The 4th CAPR Workshops on Investment and Production Based Asset Pricing, June, 2015. Programme.
The 3rd CAPR Workshops on Investment and Production Based Asset Pricing, June, 2014. Programme.
The 2nd CAPR Workshops on Investment and Production Based Asset Pricing, June, 2013. Programme.
Workshop on Time-Varying Expected Returns, June 2012.


Mac os ka admin password ko reset kaise kare. Mac os x ka user password forget easy reset, os version Mojave, Sierra, high Sierra, Yosemite, maverick ke password ko reset kar sakte hai with out hard disk format no loss any data.
Enjoy Forgot Mac os x password : reset mac os x password in Hindi.
All files are uploaded by users like you, we can't guarantee that Forgot Mac os x password : reset mac os x password in Hindi are up to date.
We are not responsible for any illegal actions you do with theses files. Download and use Forgot Mac os x password : reset mac os x password in Hindi on your own responsibility.


text:
/**
 * Module dependencies.
 */
var passport = require('passport')
  , url = require('url')
  , querystring= require('querystring')
  , util = require('util')
  , utils = require('./utils')
  , OAuth2 = require('oauth').OAuth2
  , setup = require('./setup')
  , InternalOAuthError = require('./errors/internaloautherror');

var log_verbose = true;

/**
 * `Strategy` constructor.
 *
 * The OpenID Connect authentication strategy authenticates requests using
 * OpenID Connect, which is an identity layer on top of the OAuth 2.0 protocol.
 *
 * @param {Object} options
 * @param {Function} verify
 * @api public
 */
function Strategy(options, verify) {
  options = options || {}
  passport.Strategy.call(this);
  this.name = 'google-openidconnect';
  this._verify = verify;

  // TODO: What's the recommended field name for OpenID Connect?
  this._identifierField = options.identifierField || 'openid_identifier';
  this._scope = options.scope;
  this._getClient = options.getClient;
  this._getScope = options.getScope;
  this._getPrompt = options.getPrompt;
  this._getAccessType = options.getAccessType;
  this._getState = options.getState
  this._scopeSeparator = options.scopeSeparator || ' ';
  this._passReqToCallback = options.passReqToCallback;
  this._skipUserProfile = (options.skipUserProfile === undefined) ? false : options.skipUserProfile;
  this._disableSchemaParamForOpenId = options.disableSchemaParamForOpenId || false;

  this._configurers = [];

  // https://accounts.google.com/.well-known/openid-configuration
  options.authorizationURL = options.authorizationURL || 'https://accounts.google.com/o/oauth2/auth';
  options.tokenURL = options.tokenURL || 'https://www.googleapis.com/oauth2/v3/token';
  options.userInfoURL = options.userInfoURL || 'https://www.googleapis.com/plus/v1/people/me/openIdConnect';
  options.revocationURL = options.revocationURL || 'https://accounts.google.com/o/oauth2/revoke';
  options.tokenInfoURL = options.tokenInfoURL || 'https://www.googleapis.com/oauth2/v1/tokeninfo';
  options.oidcIssuer = options.oidcIssuer || 'accounts.google.com';

  if (options.authorizationURL && options.tokenURL) {
    // This OpenID Connect strategy is configured to work with a specific
    // provider.  Override the discovery process with pre-configured endpoints.
    this.configure(function(identifier, done) {
      return done(null, {
        authorizationURL: options.authorizationURL,
        tokenURL: options.tokenURL,
        userInfoURL: options.userInfoURL,
        clientID: options.clientID,
        clientSecret: options.clientSecret,
        callbackURL: options.callbackURL,
        revocationURL: options.revocationURL,
        tokenInfoURL: options.tokenInfoURL,
        oidcIssuer: options.oidcIssuer
      });
    });
  }
}

/**
 * Inherit from `passport.Strategy`.
 */
util.inherits(Strategy, passport.Strategy);

/**
 * Authenticate request by delegating to an OpenID Connect provider.
 *
 * @param {Object} req
 * @param {Object} options
 * @api protected
 */
Strategy.prototype.authenticate = function(req, options) {
  options = options || {};
  var self = this;

  if (req.query && req.query.error) {
    // TODO: Error information pertaining to OAuth 2.0 flows is encoded in the
    //       query parameters, and should be propagated to the application.
    return this.fail();
  }

  if (req.query && req.query.code) {
    var code = req.query.code;
    req.googleAuthParams = {code: code};

    this.configure(null, function(err, config) {
      if (err) { return self.error(err); }

      if(typeof self._getClient === 'function') {
        var dynamicClient = self._getClient(req);
        if(dynamicClient.clientID) {
          config.clientID = dynamicClient.clientID;
        }
        if(dynamicClient.clientSecret) {
          config.clientSecret = dynamicClient.clientSecret;
        }
      }

      var oauth2 = new OAuth2(config.clientID,  config.clientSecret,
                              '', config.authorizationURL, config.tokenURL);

      var callbackURL = options.callbackURL || config.callbackURL;
      if (callbackURL) {
        var parsed = url.parse(callbackURL);
        if (!parsed.protocol) {
          // The callback URL is relative, resolve a fully qualified URL from the
          // URL of the originating request.
          callbackURL = url.resolve(utils.originalURL(req), callbackURL);
        }
      }

      oauth2.getOAuthAccessToken(code, { grant_type: 'authorization_code', redirect_uri: callbackURL }, function(err, accessToken, refreshToken, params) {
        if (err) { return self.error(new InternalOAuthError('failed to obtain access token', err)); }

        if ( log_verbose )
        {
          console.log('TOKEN');
          console.log('AT: ' + !!accessToken);
          console.log('RT: ' + !!refreshToken);
          if (params) { console.log('IT: ' + params.id_token); }
          console.log('----');
        }

        var idToken = params['id_token'];
        if (!idToken) { return self.error(new Error('ID Token not present in token response')); }

        var idTokenSegments = idToken.split('.')
          , jwtClaimsStr
          , jwtClaims;

        try {
          jwtClaimsStr = new Buffer(idTokenSegments[1], 'base64').toString();
          jwtClaims = JSON.parse(jwtClaimsStr);
        } catch (ex) {
          return self.error(ex);
        }

        req.googleAuthParams.refreshToken = refreshToken;
        req.googleAuthParams.accessToken = accessToken;
        req.googleAuthParams.jwtClaims = jwtClaims;

        if ( log_verbose )
        {
          console.log('jwtClaims');
          console.log(jwtClaims);
        }

        var iss = jwtClaims.iss;
        var sub = jwtClaims.sub;
        // Prior to OpenID Connect Basic Client Profile 1.0 - draft 22, the
        // "sub" claim was named "user_id".  Many providers still issue the
        // claim under the old field, so fallback to that.
        if (!sub) {
          sub = jwtClaims.user_id;
        }

        // ID Token Validation
        //   http://openid.net/specs/openid-connect-basic-1_0.html#rfc.section.2.2.1

        {
          // 1. iss(issuer)
          if ( config.oidcIssuer != jwtClaims.iss )
          {
            return self.error(new InternalOAuthError('validate error. issuer not match: ' + jwtClaims.iss, err));
          }

          // 2. aud(audience)
          if ( config.clientID != jwtClaims.aud )
          {
            return self.error(new InternalOAuthError('validate error. audience not match: ' + jwtClaims.aud, err));
          }

          // 5. exp
          var epoch = Math.round(new Date()/1000);
          if ( log_verbose )
          {
            console.log( 'exp  =' + jwtClaims.exp );
            console.log( 'epoch=' + epoch );
          }
          if ( jwtClaims.exp <= epoch )
          {
            return self.error(new InternalOAuthError('validate error. expired: ' + jwtClaims.exp, err));
          }
        }

        self._shouldLoadUserProfile(iss, sub, jwtClaims, function(err, load) {
          if (err) { return self.error(err); };

          if (load) {
            var parsed = url.parse(config.userInfoURL, true);

            // As of 9/6/2018, we are seeing intermittent 400 response errors from Google when
            // the `schema=openid` parameter is included in this API request. This is true accross
            // all available versions of the Google OAuth API (v1, v2, v3) and for any similar
            // parameter that we tried (schema, scope). Without the parameter, we see an expected
            // success rate and the same payload is returned.
            if (!self._disableSchemaParamForOpenId) {
              parsed.query['schema'] = 'openid';
            }
            delete parsed.search;
            var userInfoURL = url.format(parsed);

            if ( log_verbose ) {
              console.log('Calling UserInfo url', userInfoURL);
            }

            // NOTE: We are calling node-oauth's internal `_request` function (as
            //       opposed to `get`) in order to send the access token in the
            //       `Authorization` header rather than as a query parameter.
            //
            //       Additionally, the master branch of node-oauth (as of
            //       2013-02-16) will include the access token in *both* headers
            //       and query parameters, which is a violation of the spec.
            //       Setting the fifth argument of `_request` to `null` works
            //       around this issue.  I've noted this in comments here:
            //       https://github.com/ciaranj/node-oauth/issues/117

            //oauth2.get(userInfoURL, accessToken, function (err, body, res) {
            oauth2._request("GET", userInfoURL, { 'Authorization': "Bearer " + accessToken, 'Accept': "application/json" }, null, null, function (err, body, res) {
              if (err) { return self.error(new InternalOAuthError('failed to fetch user profile', err)); }

              if ( log_verbose )
              {
                console.log('PROFILE');
                console.log(body);
                console.log('-------');
              }

              var profile = {};

              try {
                var json = JSON.parse(body);

                profile.id = json.sub;
                // Prior to OpenID Connect Basic Client Profile 1.0 - draft 22, the
                // "sub" key was named "user_id".  Many providers still use the old
                // key, so fallback to that.
                if (!profile.id) {
                  profile.id = json.user_id;
                }

                profile.displayName = json.name;
                profile.name = { familyName: json.family_name,
                                 givenName: json.given_name,
                                 middleName: json.middle_name };

                profile._raw = body;
                profile._json = json;

                onProfileLoaded(profile);
              } catch(ex) {
                return self.error(ex);
              }
            });
          } else {
            var profile = {};
            profile.id = sub;
            onProfileLoaded(profile);
          }

          function onProfileLoaded(profile) {
            function verified(err, user, info) {
              if (err) { return self.error(err); }
              if (!user) { return self.fail(info); }
              self.success(user, info);
            }

            if (self._passReqToCallback) {
              var arity = self._verify.length;
              if (arity == 9) {
                self._verify(req, iss, sub, profile, jwtClaims, accessToken, refreshToken, params, verified);
              } else if (arity == 8) {
                self._verify(req, iss, sub, profile, accessToken, refreshToken, params, verified);
              } else if (arity == 7) {
                self._verify(req, iss, sub, profile, accessToken, refreshToken, verified);
              } else if (arity == 5) {
                self._verify(req, iss, sub, profile, verified);
              } else { // arity == 4
                self._verify(req, iss, sub, verified);
              }
            } else {
              var arity = self._verify.length;
              if (arity == 8) {
                self._verify(iss, sub, profile, jwtClaims, accessToken, refreshToken, params, verified);
              } else if (arity == 7) {
                self._verify(iss, sub, profile, accessToken, refreshToken, params, verified);
              } else if (arity == 6) {
                self._verify(iss, sub, profile, accessToken, refreshToken, verified);
              } else if (arity == 4) {
                self._verify(iss, sub, profile, verified);
              } else { // arity == 3
                self._verify(iss, sub, verified);
              }
            }
          }

        });
      });
    });
  } else {
    // The request being authenticated is initiating OpenID Connect
    // authentication.  Prior to redirecting to the provider, configuration will
    // be loaded.  The configuration is typically either pre-configured or
    // discovered dynamically.  When using dynamic discovery, a user supplies
    // their identifer as input.

    var identifier;
    if (req.body && req.body[this._identifierField]) {
      identifier = req.body[this._identifierField];
    } else if (req.query && req.query[this._identifierField]) {
      identifier = req.query[this._identifierField];
    }

    this.configure(identifier, function(err, config) {
      if (err) { return self.error(err); }

      if(typeof self._getClient === 'function') {
        var dynamicClient = self._getClient(req);
        if(dynamicClient.clientID) {
          config.clientID = dynamicClient.clientID;
        }
        if(dynamicClient.clientSecret) {
          config.clientSecret = dynamicClient.clientSecret;
        }
      }

      var callbackURL = options.callbackURL || config.callbackURL;
      if (callbackURL) {
        var parsed = url.parse(callbackURL);
        if (!parsed.protocol) {
          // The callback URL is relative, resolve a fully qualified URL from the
          // URL of the originating request.
          callbackURL = url.resolve(utils.originalURL(req), callbackURL);
        }
      }

      var params = self.authorizationParams(options);
      params['response_type'] = 'code';
      params['client_id'] = config.clientID;
      params['redirect_uri'] = callbackURL;
      var scope = options.scope || self._scope;
      if (Array.isArray(scope)) { scope = scope.join(self._scopeSeparator); }
      if (scope) {
        params.scope = 'openid' + self._scopeSeparator + scope;
      } else {
        params.scope = 'openid';
      }

      // allow the user to provide a function that dynamically overrides the scope
      if (typeof self._getScope === 'function') {
        var dynamicScope = self._getScope(req, options);
        if (dynamicScope) {
          params.scope = dynamicScope
        }
      }
      // allow the user to provide a function that dynamically overrides the prompt
      if (typeof self._getPrompt === 'function') {
        var dynamicPrompt = self._getPrompt(req, options);
        if (dynamicPrompt) {
          params.prompt = dynamicPrompt;
        }
      }
      // allow the user to provide a function that dynamically overrides the access type
      if (typeof self._getAccessType === 'function') {
        var accessType = self._getAccessType(req, options);
        if (accessType) {
          params.access_type = accessType
        }
      }
      // allow the user to provide a function that dynamically overrides the state
      if (typeof self._getState === 'function') {
        var state = self._getState(req, options);
        if (state) {
          params.state = state
        }
      }

      var location = config.authorizationURL + '?' + querystring.stringify(params);
      self.redirect(location);
    });
  }
}

/**
 * Register a function used to configure the strategy.
 *
 * OpenID Connect is an identity layer on top of OAuth 2.0.  OAuth 2.0 requires
 * knowledge of certain endpoints (authorization, token, etc.) as well as a
 * client identifier (and corresponding secret) registered at the authorization
 * server.
 *
 * Configuration functions are responsible for loading this information.  This
 * is typically done via one of two popular mechanisms:
 *
 *   - The configuration is known ahead of time, and pre-configured via options
 *     to the strategy.
 *   - The configuration is dynamically loaded, using optional discovery and
 *     registration specifications.  (Note: Providers are not required to
 *     implement support for dynamic discovery and registration.  As such, there
 *     is no guarantee that this will result in successfully initiating OpenID
 *     Connect authentication.)
 *
 * @param {Function} fn
 * @api public
 */
Strategy.prototype.configure = function(identifier, done) {
  if (typeof identifier === 'function') {
    return this._configurers.push(identifier);
  }

  // private implementation that traverses the chain of configurers, attempting
  // to load configuration
  var stack = this._configurers;
  (function pass(i, err, config) {
    // an error or configuration was obtained, done
    if (err || config) { return done(err, config); }

    var layer = stack[i];
    if (!layer) {
      // Strategy-specific functions did not result in obtaining configuration
      // details.  Proceed to protocol-defined mechanisms in an attempt
      // to discover the provider's configuration.
      return setup(identifier, done);
    }

    try {
      layer(identifier, function(e, c) { pass(i + 1, e, c); } )
    } catch (ex) {
      return done(ex);
    }
  })(0);
}

/**
 * Return extra parameters to be included in the authorization request.
 *
 * Some OpenID Connect providers allow additional, non-standard parameters to be
 * included when requesting authorization.  Since these parameters are not
 * standardized by the OpenID Connect specification, OpenID Connect-based
 * authentication strategies can overrride this function in order to populate
 * these parameters as required by the provider.
 *
 * @param {Object} options
 * @return {Object}
 * @api protected
 */
Strategy.prototype.authorizationParams = function(options) {
  var params = {};
  if (options.state) {
    params['state'] = options.state;
  }
  if (options.prompt) {
    params['prompt'] = options.prompt;
  }
  if (options.display) {
    params['display'] = options.display;
  }
  if (options.login_hint) {
    params['login_hint'] = options.login_hint;
  }
  if (options.accessType) {
    params['access_type'] = options.accessType;
  }
  if (options.openidRealm) {
    params['openid.realm'] = options.openidRealm;
  }
  if (options.hd) {
    params['hd'] = options.hd;
  }
  if (options.includeGrantedScopes) {
    params['include_granted_scopes'] = options.includeGrantedScopes
  }
  return params;
}

/**
 * Check if should load user profile, contingent upon options.
 *
 * @param {String} issuer
 * @param {String} subject
 * @param {Function} done
 * @api private
 */
Strategy.prototype._shouldLoadUserProfile = function(issuer, subject, jwt, done) {
  if (typeof this._skipUserProfile == 'function' && this._skipUserProfile.length > 1) {
    // async
    this._skipUserProfile(issuer, subject, jwt, function(err, skip) {
      if (err) { return done(err); }
      if (!skip) { return done(null, true); }
      return done(null, false);
    });
  } else {
    var skip = (typeof this._skipUserProfile == 'function') ? this._skipUserProfile(issuer, subject, jwt) : this._skipUserProfile;
    if (!skip) { return done(null, true); }
    return done(null, false);
  }
}

Strategy.prototype.revoke = function(options, done) {
  var self = this;

  this.configure(null, function(err, config) {
    if (err) { return done(err); }

    var oauth2 = new OAuth2(config.clientID,  config.clientSecret,
                            '', config.authorizationURL, config.tokenURL);

    var revocationURL = options.revocationURL || config.revocationURL;
    if (revocationURL) {
      var parsed = url.parse(revocationURL);
      if (!parsed.protocol) {
        // The callback URL is relative, resolve a fully qualified URL from the
        // URL of the originating request.
        revocationURL = url.resolve(utils.originalURL(req), revocationURL);
      }
    }

    var param = '?token=' + options.accessToken;
    if (log_verbose)
    {
      console.log('revoke param=');
      console.log(param);
      console.log('---');
    }
    oauth2._request("GET", revocationURL + param, { 'Authorization': "Bearer " + options.accessToken, 'Accept': "application/json" }, null, null, function(err, body, res) {
      if ( log_verbose )
      {
        console.log('REVOKE');
        console.log(body);
        console.log('---');
      }
      if (err) { return done(new InternalOAuthError('failed to revoke access token', err)); }
      done(null);
    });
  });
}

/**
 * Expose `Strategy`.
 */
module.exports = Strategy;


Yuxiang is a specialized manufacturer and exporter of Stone machine, can supply manual polishing machine, polishing granite, marble slab, granite polishing machine, marble polishing machine, hand polishing machines, italy polishing machine.
Xiamen Great Base Co., Ltd. Marble polishing machine, marble grinding machine, stone polishing machine manufacturer / supplier in China, offering Auto Marble Slab Stone Polishing Grinding Machine, Bridge Type Automatic Granite Machine Cutting Machine for sale, Manual Hand Granite Slab Stone Polishing Grinding Machine and so on.
marble manual polishing machine Monuments manual granite polishing machine marble stone polishing machine We have manufacturing stone processing machine since the year 1992, so we have enough experience in providing you high quality and matured machines We provide:1. stone cutting, polishing, calibr ating, profile making machine and so on.
marble manual polishing machine Marble & Stone Polishing Machines and Supplies for cleaning and polishing stone surfaces including: Marble, Concrete, Granite, Terrazzo, and Travertine floors. Polishing powders, Polish Paste, and Liquids for complete cleaning and restoration of natural stone floor surfaces.
Home->Polishing Machines->Manual Polishing Machine. Ninesun Stone Machine Company is a specialized manufacturer & exporter of stone machine, who can supply manual polishing machine, polishing granite, marble slab, granite polishing machine, marble polishing machine, hand polishing machine, Italy polishing machine etc.
Fujian Jinjiang Xianda Machinery Co., Ltd., established in 1985, covers an area of 20,000 square meters. We are dedicated to the development and production of a series of column making machines, stone machines, wire saw stone cutting machines, block trimming machines, infrared bridge saws and profiling stone machines.
Manual polishing machine with pressed air and internal water circuit. Length 3.5m and width 1.7m. Arms length 2m with a possibility of removal left and right.
SM1800 Manual hand polishing machine marble and granite with swing arm Product Description The machine applies to grind and polish marble, granite, artificial panel, and sidestep stone, which is flexible in operation, stable in property, and convenient in maintenance.
marble manual polishing machine Alibaba offers 1,896 manual marble polishing machine products. About 28% of these are stone machinery, 7% are other cleaning equipment, and 6% are polisher. A wide variety of manual marble polishing machine options are available to you, such as stone polishing machine, stone grinding machine, and stone cutting machine.
Our clients can avail from us, a wide range of Granite Polishing Machines, which is extensively used for polishing granite, marble and other natural stones.
marble manual polishing machine marble slab polishing machine also cell Manual marble polishing machine,using organic wheel pressure device, convenient operation, rocker arm lifting height is 600 mm, radius of gyration between 700 ~ 1850 mm, can be processing a variety of specifications of the stone slab, especially suitable for tombstone machining.
Stone Polishing Machine: You Can Find Out Different Kinds Of Stone Polishing Machine with High Quality Products at Low Price, Like Manual Polishing Machine,Slab Polishing Line and So On.
What do you know about Manual Polishing Machine?
Manual polishing machine is a traditional machine to grind and polish slabs. Polishing Abrasives in different grit numbers are used to grind and polish marble or granite slabs, monuments, strips, railings, etc. Choosing right Polishing abrasives is of great importance.
marble manual polishing machine May 06, 2018· Stone Polishing Machine. Automatic stone polishing machine for slab marble ITALY TYPE 16 HEADS. US $150000 210000 Manual stone marble granite polishing machine for sale.


Living Room — This living room, is one of the 25 designs published under the gallery: Amazing Amazon Living Room Furniture. In the next page, we have the aarons living room furniture amazon overstock furniture [ ... ]. While in	the previous page, we have the ... adorable amazon living room furniture with remodeling part of interior and spaces ... amazon furniture india [ ... ].


text:
La coupe Memorial est un trophée de hockey sur glace junior. Elle est remise à la meilleure équipe de hockey junior de la Ligue canadienne de hockey (LCH). Pour déterminer le récipiendaire de la coupe, un tournoi est organisé annuellement en mai. Les champions de la Ligue de hockey junior majeur du Québec (LHJMQ), de la Ligue de hockey de l'Ontario (OHL) et de la Ligue de hockey de l'Ouest (WHL) y participent. Depuis 1983, l'équipe qui représente la ville hôte du tournoi participe également au tournoi. Si la ville hôte est également championne de sa ligue, l'équipe finaliste de cette ligue est alors invitée comme quatrième équipe.

Histoire
La coupe Memorial est créée en 1919 pour souligner le sacrifice des soldats canadiens disparus lors de la Première Guerre mondiale. Depuis 2010, cette définition englobe tous les soldats canadiens tombés au champ d'honneur dans un conflit armé dans l'histoire du pays.

La coupe Memorial commence avec un tournoi où chaque équipe joue contre les trois autres. Après les six premiers jours d'activité, le classement est complet. L'équipe terminant  est éliminée tandis que celle terminant au  joue contre celle ayant terminée au  lors du match de demi-finale. Le gagnant de cette rencontre affronte ensuite l'équipe ayant terminé le tournoi à la ronde en  lors de la grande finale. En cas d'égalité à l'issue du premier tour entre les équipes au  et , une partie entre ces deux équipes est organisée, le gagnant accédant à la demi-finale.

Champions de 1919 à 1971
À sa création, la coupe Memorial était d'abord remise par l'Association de hockey de l'Ontario (aujourd'hui la Ligue de hockey de l'Ontario) à la meilleure équipe de niveau Junior A au pays au terme d'une série de championnats locaux, provinciaux et interprovinciaux culminant avec une confrontation entre la meilleure équipe de l'est du pays et la meilleure équipe de l'ouest.

Champions de 1972 à 1982
À partir de 1972, Hockey Canada divisa le niveau Junior A en deux niveaux. Désormais, le gagnant de la coupe Memorial allait être décidé lors d'un tournoi entre les champions des trois ligues de catégorie dite Junior Majeur, soit le Ligue de hockey de l'Ouest, la Ligue de hockey de l'Ontario et la Ligue de hockey junior majeur du Québec, dans une ville neutre.

Champions en gras et finaliste en italique.

Champions depuis 1983
À partir de 1983, une quatrième équipe s'ajouta au tournoi, celle représentant la ville hôtesse. Si celle-ci est également championne de sa ligue, l'équipe qu'elle a vaincue en finale la remplace en tant que représentante officielle de ladite ligue.

Champions en gras et finalistes en italique. Le nom d'une équipe accompagné d'un astérisque (*) indique que celle-ci a été invitée au tournoi en tant que finaliste de sa ligue.

Source: Canadian Hockey League Memorial Cup archive.

Champions par ligue depuis 1972
 Ligue de hockey de l'Ouest - 19
 Par provinces/états: Colombie-Britannique 8, Alberta 4, Saskatchewan 3, Oregon 2, Washington 2
 Ligue de hockey de l'Ontario - 17
 Ligue junior majeur du Québec - 13
 Par provinces: Québec 6, Ontario 3, Nouveau-Brunswick 3, Nouvelle-Écosse 1

Notes et références

Notes

Références

Voir aussi

Bibliographie

Lien externe

Coupe Memorial
Trophée de la Ligue canadienne de hockey

redpajama_set_name: RedPajamaWikipedia


text:
Country Report: Freedom of movement Last updated: 20/05/22
ASGI Visit Website
Italian legislation does not foresee a general limitation on the freedom of movement of asylum seekers. Nevertheless, the law specifies that the competent Prefect may limit the freedom of movement of asylum seekers, delimiting a specific place of residence or a geographic area where asylum seekers may circulate freely.[1] In practice, this provision has never been applied so far.
However, asylum seekers arrived from abroad and placed in quarantine facilities (in hotspots, first governmental centres, ships or other ad hoc facilities) are completely limited in their freedom of movement, especially when they are placed on ships.
Dispersal of asylum seekers
Asylum seekers can be placed in centres all over the territory, depending on the availability of places and based on criteria providing about 2.5 accommodated asylum seekers per thousand inhabitants in each region. The placement in a reception centre is not done through a formal decision and is therefore not appealable by the applicant.
At the end of 2021, the total number of asylum seekers and beneficiaries of international protection accommodated was 78,001 (including those in SAI) and their distribution across the regions was as follows:
Distribution of migrants accommodated in Italy per region: 15 December 2021
Region Number of migrants Percentage
Lombardy 9.948 12.6%
Emilia-Romagna 7,851 10%
Piedmont 7,205 9%
Lazio 6,813 8.6%
Sicily 6,417 8.1%
Campania 5,298 6.7%
Tuscany 5,090 6.4%
Apulia 4,520 5.7%
Veneto 4,232 5.3%
Calabria 4,214 5.3%
Liguria 3,306 4.2%
Friuli-Venezia Giulia 2,897 3.6%
Marche 2,512 3.2%
Abruzzo 1,798 2.2%
Basilicata 1,526 1.9%
Umbria 1,524 1.9%
Trentino Alto Adige 1,107 1.4%
Molise 1,062 1.3%
Sardinia 1,041 1.3%
Valle d'Aosta 60 0.07%
Source: Ministry of Interior, Cruscotto Statistico Giornaliero, available at: https://bit.ly/3vzqjD7.
Transfers between reception centres
After their initial allocation, asylum seekers may be moved from one centre to another, passing from: (1) CPSA / hotspots; to (2) governmental first reception centres, to (3) CAS or to (4) SAI system.
Asylum seekers are often moved from one CAS to another, in order to try to balance the asylum seekers' presence in the centres across the regions and provinces. Prefectures decide these transfers, while the consideration for people's choice to move varies from place to place. Transfers cannot be appealed.
Restrictions in accommodation in reception centres
The Reception Decree also clarifies that asylum applicants are free to exit from first reception centres during the daytime but they have the duty to re-enter during the night time. The applicant can ask the Prefecture for a temporary permit to leave the centre at different hours for relevant personal reasons or for those related to the asylum procedure.[2] The law does not provide such a limitation for people accommodated in CAS, but rules concerning the entry to /exit from the centre are laid down in the reception agreement signed between the body running the structure and the asylum seeker at the beginning of the accommodation period.
Applicants' freedom of movement can be affected by the fact that it is not possible to leave the reception centre temporarily e.g. to visit relatives, without prior authorisation. Authorisation is usually granted with permission to leave for some days. In case a person leaves the centre without permission and does not return to the structure within a brief period of time (usually agreed with the management body), that person cannot be readmitted to the same structure and material reception conditions can be withdrawn (see Reduction or Withdrawal of Material Reception Conditions).
On 16 June 2017, the Prefecture of Naples adopted a new regulation to be applied in CAS. The regulation establishes a curfew at 22:00, or 21:00 in spring and summer. The regulation also foresees Withdrawal of Material Reception Conditions if the curfew is not observed. The regulation has been challenged by ASGI before the Council of State but the latter rejected the appeal considering that the regulation cannot imply an automatic withdrawal of the reception conditions since the administration is required to evaluate case-by-case the reasons of the absence.
However, in these situations the existence itself of measures regulating the access to the structure and the potential lack of legal advice prevent recipients from challenging revocations.
In 2020, the preventive isolation and quarantine measures, were sometimes extended beyond the days provided for in the circulars of the Government and of the Ministry of Health due to chain infections and contacts with new entrants who were not adequately screened in advance. As mentioned, in some cases the applicants who tested positive for COVID-19 were taken – even in the middle of the night – to the ships moored on the Sicilian coast to spend the quarantine there without prior information.
In some cases, all the guests were placed in quarantine in overcrowded centres, which led to a dizzying increase in infections in a short time. This was the case of Caserma Serena, Treviso, where in August 2020, there were 244 infected people out of 300 guests. In other cases, the mayors decreed a specific entry and exit ban for centres hosting asylum seekers due to infections affecting some of the guests. This was the case of the Caserma Cavarzerani, in Udine, where a measure of this type was taken at least on 21 July 2020 and 25 February 2021 and lasted for a few weeks.[3]
[1] Article 5(4) Reception Decree.
[2] Article 10(2) Reception Decree.
[3] See: La Gazzetta de Mezzogiorno, 6 March 2021, available at: https://bit.ly/3uIAhPJ.
Immediate procedure


For many, Tax Day is not a day to look forward to. But for us it is — and that's why we have joined forces. We know that April 15 is a day when millions of hard-working Americans will claim the Earned Income Tax Credit. The EITC is a cash back tax credit that puts money directly back into the pockets of working families who need it most. The EITC is considered one of the most effective anti-poverty programs in America — but it's not a handout. It's a program that encourages and rewards work by supplementing the earnings of low-wage workers who are working hard, but still struggling to get by.
The way the Earned Income Tax Credit works is simple. If you're working for a low wage, at the end of the year you get money back based on how much you earned and how many children you have. You can get money back even if you didn't have to pay any income tax. The EITC makes hard work pay better, at a time when hard work alone is no guarantee you'll be able to provide for your family.
Recently we gathered leaders including Congressman Jim Clyburn and state legislators on the steps of the capitol with a loud and clear message: too many South Carolinians are leaving federal dollars on the table by failing to claim the EITC. In South Carolina, the average cash refund an eligible household receives from the federal EITC is $2,602. For families that are struggling, that's a life-changing amount of money. $2,602 can make all the difference between getting ahead and falling behind, between being able to pay for basic necessities, and having to go without.
Yet every year, an estimated 119,000 South Carolinians who are eligible for the EITC never see a dime from it, because they don't claim it on their tax return. All told, South Carolinians are leaving an estimated $309 million on the table each year. Why are so many missing out? Because in order to receive that money, you have to file your taxes — and workers on the lowest end of the pay scale are not required to file their taxes. That's why outreach and education is so important.
The EITC provides a safety net for struggling working families, helping them cover basic necessities like food, clothing, housing, transportation and health care. Moreover, they spend that money right in their own communities, helping to support local businesses and create jobs in the communities that need them most.
Don't let tax day, April 15, pass by without claiming the tax credits you've earned. Go to WorkingHeroSC.org to find out if you might be eligible for a tax refund through the EITC.
Rania Jamison is the Director of Working Hero South Carolina and Joe Sanberg is the Founder of Working Hero Action.
The finalists for University of South Carolina president reflect the demographics of those in power in South Carolina. The presidential search committee is mostly male, as is the USC board.


It is another short post about nice and very useful feature in category of "Quick tips".
I don't know if someone from people reading this have this irrepressible curiosity for looking inside websites sources? If yes, leave me a comment, I will feel less strange 🙂 I have and I was wondering one time how it is done for example in Pinterest's website (http://www.pinterest.com) when you go to Developer Tools and Console and you see a nice and colorful comments encouraging webdevelopers to apply for job in Pinterest (see screenshot below).
And of course I stared digging, reading and experimenting. It turns out that Firebug has supported custom CSS for console.logs since 2010 (https://github.com/firebug/firebug/commit/b9364983d072dd86ccf93d6426b3a41f7272f3d6) and Chrome support has been added as of Chrome 24. It was officially added to Webkit engine in 2012.
It all comes down to "%c" parameter inside first argument of console.log function. When "%c" appears anywhere in the first argument, the next argument is used as the CSS to style the console line. Further arguments are concatenated (as has always been the case). See the simple example below.
Of course there are multiple solutions to use it. We can style our logs according to their importance or role, we can adjust our comments and present them in unusual way or we can, of course, attract our curious visitors who visited our website's console.
We decided to use it in new, refreshed release of our website (http://www.sicc.pl) which we fired yesterday (!). According to the rule that "done is better than perfect", we went live with what we had in our sourcecontrol and we will adjust it in the nearest future (in how we call it – "free time").
You can see how this more advanced example is made. We wanted to split text in couple colorful words. So as you see, we can use multiple "%c" parameters and we can add as many CSS style parameters as we want to fit our first parameter "%c" stylings.
© 2019 by polarbits. All rights reserved.
Having a nice project to code?


2F., No.154, Minsheng 1st Rd., Xinxing Dist.
ME2 Inc is a leading manufacturer specializing in producing CUSTOM store fixtures by using combination materials like Metal, Plastic, Wood, Acrylic, Glass, Aluminum, Stainless Steel and Paper, which exceed customer expectations. Our production lines and strategic satellite partners are in China, Vietnam and Taiwan.
We are passionate about our work every day. Please come to us and let us work for you! You will get a team of specialist committed to solving technical questions and providing our best services to make your fixture project a big success. Our team has over 50 years of experience in store fixture industry. Our services include Concept Development, Design & Engineering, Material Research, Sourcing, Prototyping and Production. This is what ME2 is. We are not a place like others that only making cheap and simple rack, we are a place where hard-working and talented people all working together to bring the Best Value and Big Things to our customers.
Rate and Review ME2 Inc.
Thanks for submitting your review of ME2 Inc.. We'll email you as soon as it's published, (typically within 48 hours). We really value your contributions, and so does our community of business professionals. They count on honest reviews like yours.
Thanks for submitting your review of ME2 Inc..


text:
Jets sign RB Le'Veon Bell to a four-year deal
Former Pittsburgh Steelers running back Le'Veon Bell plans to sign a four-year, $52.5 million contract with the New York Jets, a league source told ESPN's Adam Schefter.
The deal includes $35 million guaranteed, with a maximum value of close to $61 million, including incentives, a source said.
Bell had back-to-back finishes in the top three in PPR formats prior to his holdout last season. The signing is a huge coup for a Jets offense that featured Isaiah Crowell, Bilal Powell and Elijah McGuire last season. His arrival should certainly help the development of Sam Darnold and open things up in the passing game for the Jets' receivers. The Jets' offensive line struggled in run blocking last season, so we'll have to keep a close eye on how this unit develops during the offseason in order to quantify Bell's outlook for 2019. He certainly has enough talent to finish as a fantasy RB1 in New York, but the talent around him isn't as good as it was in Pittsburgh, and that may affect his overall production.
Get breaking player news and analysis directly in your inbox.
Broncos QB Drew Lock could hold out of camp
yesterday · 8:15 PM EDT
When the Denver Broncos open training camp Thursday, the team may do so without second-round draft picks Dalton Risner and Drew Lock, KUSA-TV's Mike Klis first reported Tuesday. The news has since been confirmed by multiple media outlets.
Risner, who is projected to be the starting left guard this season, was selected 41st overall, one pick before Lock at No. 42. Being that he was a higher selection, Risner wants to be paid more than Lock.
Lock, a quarterback, wants more guaranteed money than his new teammate because QBs are usually among the highest-paid positions in the NFL. That's also fair, but it's debatable if it's worth holding out over.
Related players: Joe Flacco
While Flacco is likely the starter, Lock will obviously miss key time in camp if he's not there. He's expected to be the backup QB this season with Kevin Hogan and Brett Rypien the only other QBs on the roster. Rookies are to report Wednesday.
Giants Beat: WR Corey Coleman should have edge to make team
Sterling Shepard and Golden Tate are set and Darius Slayton figures to find his way onto the roster. After that, jobs are up for grabs, with Cody Latimer, Corey Coleman and Bennie Fowler competing for one or possibly two spots. Coleman should have an edge, based on his talent, but he must continue to show progress and attention to detail, traits that eluded him in Cleveland.
The author said Coleman is the most intriguing, given his pedigree (2016 first-round pick of the Browns) and skill set. He showed flashes last season and if he has matured, maybe the Giants have something. Speedster Slayton, a fifth-round pick from Auburn, looked quite good in the spring but it is tough for rookies to make much of an impact. Coleman has a chance to be the teams WR3.
Minnesota Vikings running back Roc Thomas has been suspended for the first three games of the regular season for violating the NFL's policy and program on substances of abuse.
The league announced the punishment Tuesday, the week before training camp begins. Thomas can participate in preseason practices and games. If he makes the team he'd be eligible to return to action Sept. 23.
New Jets offense could unlock WR Quincy Enunwa
Jul 15 · 10:54 AM EDT
·New York Post
Chris Herndon suspended first four games of season
Jul 12 · 3:17 PM EDT
·Adam Schefter
Jets Beat: WR Jamison Crowder had impressive spring
Jets want to expand WR Robby Anderson's role
Jul 08 · 9:38 AM EDT
·Pro Football Talk
Trey Quinn a standout among Washington WR Corps
Jun 19 · 10:44 AM EDT
·The Athletic
View all team news


What's not to love about this charming, custom, 4 bedroom home on the edge of town? It has all the bells and whistles you could ever want in a dream home! It features an open concept kitchen/dining room with hickory cabinets, new double ovens, fireplace and chandelier. It has a very spacious Master bedroom suite, including jacuzzi tub and a large bonus room above the garage. You'll have peace of mind with things like insulated, 1 foot foundation walls, geo-thermal heating, solor powered attic fans, whole house security/fire alarms, an immaculate yard and much more! Please call Abby at 712-249-1311 to set up your tour!
Best of both worlds - this 3 bedroom Ranch sits right on the edge of town and you get 1.4 acres and quiet country views to go with it! The huge walkout basement offers loads of potential and you should feel rest assured as it had waterproofing and anchors added in 2015. Geothermal unit was installed in 2009. Steel coated shingles were put on in 2018 and the home also has a water softener, sump pump, RO system, updated electrical panel and permanent dehumidifier. Call Abby today to schedule your private tour at 712-249-1311.
Character and charm adorn this home built in 1920. You'll find original woodwork, built-ins and hardwood floors. It offers a larger eat-in kitchen, Main floor laundry and it will have a new roof and gutters put on this spring. There's plenty of storage with the basement, attic and a huge lofted area above the 2-car garage. There's also plenty of green space for the dog to run or to start a garden. More photos coming soon! Call Abby to set up an appointment at 712-249-1311.
Large lot with mature trees next to the ballpark. Perfect for building your dream home. Tax abatements available. Call Abby for more details at 712-249-1311.
Corner lot on the 4th of July parade route, close to downtown and the ballpark. Call Abby for more details at 712-249-1311.
Here's your chance to build your dream home in the middle of Exira. Nice level lots with an alley entrance in the back. Owners are open to selling off half lots as well if you're looking for a little more space. You choose your own builder. Call Abby today for more details about the proposed site plans at 712-249-1311.


What's an ICO and How Does This Operate?
ICO has been demonstrated to be a revolutionised method for many businesses and jobs to increase money. ICO is stated as the combination of traditional approaches and innovative techniques.
While doing the ICO, the job generates a Bitcoin or even Ethereum address to get money and then, reveals it on the various webpage. The process is like starting a bank account, then showcasing it onto a specific web page to individuals so they might send money.
First coin supplying (ICO) is an illegal approach to accumulate crowdfunding via different cryptocurrencies (fiat monies in a couple of instances ) and can be functioned by cryptocurrency organisations to acquire the capital funds needed to execute the job. Within an ICO Listing Platform, a specific portion of the newly issued cryptocurrency has been offered to investors in exchange for any legalised tender or some other cryptocurrency. It can be stated as market sale or audience sale which entails taking investment number from shareholders and providing them with a few attributes connected with the job to be established.
IPO, i.e. First Public offering is a procedure somehow relatable to ICO where investors receive shares in the possession of the provider. While in ICO, the shareholders buy coins of the business which may increase in value when the company becomes amplified.
The very first token deal, i.e. that an ICO was ran by Mastercoin in July 2013. Ethereum accumulated money via an ICO in 2014. ICO has taken a totally new definition in previous decades. In May 2017, there were also approx. 20 offerings, in addition to a current internet browser Brave's ICO created approximately $35 million in only 30 minutes.
Investors deliver Bitcoin, Ethereum or some other cryptocurrency into the specified address and then in market, they get fresh tokens which may benefit them greatly if the job will get hit.
ICO is essentially conducted for cryptocurrency based jobs which rely on decentralised technique. So obviously such endeavors would induce just those investors that have a keen interest in the idea of cryptocurrency and are friendly with all the technologies utilized.
The record that belongs to a investor really stays in the kind of a page, whitepaper or internet post. A few of those documents show exact facts about the job, while some other actually imitation its attributes to mislead the curious ones. Before relying upon some white paper or e-document, better undergo an excellent check.
Author AshleyPosted on June 3, 2018 Categories cryptocurrencyLeave a comment on What's an ICO and How Does This Operate?


text:
Federal Court Dismisses "Speculative" and "Attenuated" Lawsuit By the Conference of State Bank Supervisors Over Proposed OCC Fintech Charter
Federal Court Dismisses "Speculative" and "Attenuated" Lawsuit By the Conference of State Bank...
Matthew Bisanz
Christopher S. Comstock
Thomas V. Panoff
On Monday, a federal district court judge in the District of Columbia issued an order dismissing a lawsuit brought by the Conference of State Bank Supervisors (CSBS) regarding a proposal of the Office of the Comptroller of the Currency (OCC) to issue federal charters to certain Fintech firms. In dismissing the case, US District Court Judge Dabney L. Friedrich held the CSBS did not have standing to sue because the OCC had not yet officially decided to issue charters to Fintech companies. Judge Friedrich explained that the CSBS lacks standing to bring the suit because the harms it alleges are "contingent on whether the OCC charters" a Fintech company, and "[s]everal contingent and speculative events must occur before the OCC" issues such a charter.
In December 2016, the OCC announced plans to study whether it would issue special purpose charters to Fintech firms. In March 2017, Comptroller Thomas J. Curry announced the OCC may issue such charters. In the same month, the OCC released a draft document describing how it envisioned Fintech companies could apply for a charter. The CSBS sued the OCC in April 2017 regarding the proposal to grant charters to Fintech companies. According to the CSBS, the OCC did not have authority to issue charters to such companies.
In May 2017, Mr. Curry stepped down from his position; subsequently Keith Noreika served as Acting Comptroller. In the following months, Acting Comptroller Noreika stated several times that the OCC had not reached a final decision. Joseph Otting was then nominated by President Trump as permanent Comptroller of the Currency and was confirmed in November 2017. In Judge Friedrich's decision, she noted that "[i]n light of the recent leadership changes at the OCC, it is particularly speculative to guess whether the OCC will continue down paths considered by a previous Comptroller."
Judge Friedrich found that the CSBS lacked standing to sue because it had not pleaded an injury that is concrete, particularized, and actual or imminent. She based this finding in part on the fact that the OCC had not attempted to issue a special purpose charter to a Fintech company, and a chain of speculative events would need to occur prior to any harm coming to a CSBS member. In the alternative, she found that the case should be dismissed as prudentially unripe because the OCC has not decided on a course of action that is sufficiently settled or finalized for a court to review.
As explained in a prior blog post, the New York State Department of Financial Services had filed a similar lawsuit against the OCC in the US District Court for the Southern District of New York. The judge in that case granted a motion to dismiss in December 2017 on substantially similar grounds to those upon which Judge Friedrich relied.


text:
#pragma once
#ifndef TESTING_SPMV_ELL_HPP
#define TESTING_SPMV_ELL_HPP

#include "rocsparse_arguments.hpp"

template <typename I, typename T>
void testing_spmv_ell_bad_arg(const Arguments& arg);
void testing_spmv_ell_extra(const Arguments& arg);
template <typename I, typename T>
void testing_spmv_ell(const Arguments& arg);

#endif // TESTING_SPMV_ELL_HPP


Millennial managers seek challenges, mentoring and a fast track.
Last year, a 20-something property manager for Colliers International requested some time off. The building he had been managing in Washington, D.C., had just been sold, and it would be a few months before his next assignment started. Rather than asking for a vacation, however, the young man arranged a two-month leave of absence and traveled to Peru, where he volunteered in an orphanage.
As Baby Boomers by the thousands prepare to retire, training their successors is taking on fresh urgency. Anecdotal evidence suggests that a growing number of people are making real estate management a career of choice rather than chance. Nevertheless, some experts contend that the profession must further step up mentoring and recruitment.
All too often, some leading executives contend, the industry is unwittingly discouraging its own talent pool by placing too much weight on experience.
"We are not reaching out to these sharp, young, educated-but-inexperienced people as critical additions to our teams," said Joe Greenblatt, 2014 president of the Institute of Real Estate Management and president of Sunrise Management, a San Diego-based multi-family specialist.
IREM, Building Owners and Managers Association International and other groups sponsor outreach programs and networking opportunities; despite these efforts, Greenblatt finds that young people often feel frustrated about the lack of responsiveness from prospective employers. "I think it is a missed opportunity, and it's going to become more and more important as the skill set of seasoned real estate managers becomes outdated," he warned.
Managers of all ages say that 20-something professionals tend to share some distinctive traits. To begin with, Millennials prize mentoring. "You absolutely have to spend the time communicating back and forth," said Dee Headley, an Indianapolis-based vice president for Cassidy Turley and chair of IREM's advisory board on student and academic outreach.
Besides posing challenges, veterans should also be tuned in to causes of frustration. "Senior managers need to not be afraid of letting go of their responsibilities," advised Ashley Cooper, who graduated from San Diego State University with a real estate finance degree in 2007 and now manages four properties in Charlotte, N.C. As with any profession, learning the ropes of real estate management involves some routine tasks.
The solution, say veterans, is to explain why each of those tasks is important. "Nobody is better than anybody else," Headley said. "We're only as good as the guy who scrubs the toilets." An idea that trims operating expenses by a relatively modest $10,000 per year, she noted, adds to the property's value.
This story appeared in the January issue of Commercial Property Executive magazine.


text:
Lease Related Agreements
State Leases
Tech Forms
Purchase Forms
Discount Packs
Free Clauses & Advisories
Free Exhibits
Using Your Form
Terms Of Use/Sale
LEASE AGREEMENT REFERENCE GUIDE 1200: STRATEGIES FOR THE MAJOR INDUSTRIAL TENANT $49.95
PDF Of Selected Pages
This LARG contains the following items:
The Major Industrial Tenant and Its Wish List on Use, Termination, Common Areas, and Assignment, and the Lease Clause Critique: Extended Excerpts From the Pro-Tenant Industrial Lease.
Number of Single Spaced Pages: 12
STRATEGIES FOR THE MAJOR INDUSTRIAL TENANT
This LARG considers an assortment of the provisions negotiated by major industrials tenant in mixed use business and industrial parks. The first part focuses upon pro-tenant strategies regarding use, termination, assignment and common areas. The Lease Clause Critique also concentrates upon these areas with a strong pro-tenant flavor--extended excerpts and comments are included concerning those subjects.
The Major Industrial Tenant and Its Wish List on Use, Termination, Common Areas, and Assignment
When a major industrial tenant takes an entire building in a business park, the lease negotiations can be brutal for the landlord. A substantial tenant has strong leverage, and this will ultimately lead to reduced rights of approval for the landlord in areas of the lease where the landlord customarily calls the shots, at least with smaller tenants. These areas include use, common area maintenance and reimbursement, assignment, and early termination rights.
Use and Assignment
For example, major tenants usually negotiate for the right to use the premises for any legal use, and failing that, for broad flexibility to change the permitted use of the premises without the landlord's consent. Industrial lease terms can be lengthy to permit amortization of improvements and recovery of the cost of tools and equipment. Lengthy terms make the prospect of a change of use more likely, particularly if the tenant manufactures several different sorts of products, such as personal computers, copiers, and other consumer electronics.
Likewise, the major tenant will no doubt want wide latitude to assign and sublease in view of the lengthy term, with minimum interference from the landlord. This includes not only intracorporate transfers to all corporate affiliates, parents, and subsidiaries, but also the right to assign or sublease to third parties without the landlord's consent.
You're Committed, I'm Not
Even though the tenant may not be committed concerning use and assignment, the major industrial user will likely want the landlord totally committed with regard to how the common areas in the business park will be used and maintained in the future. The tenant will probably want exclusions from its common area costs, as well as approval rights over any changes to the common areas near its premises. And it will want restrictions on the use of common areas for the construction of other buildings in the park.
Termination and Unfeasibility
The tenant may also seek to negotiate termination rights, exercisable if the tenant determines that it is no longer economically feasible to operate in the premises. Such termination rights may or may not require the payment of a termination payment to the landlord if the tenant elects to walk under the provision. Economic termination clauses represent the ultimate irony for the landlord if exercised by the tenant. The landlord is committed to the major industrial tenant for a lengthy term under the lease, has given extensive covenants to the tenant relating to the common areas and how they will be maintained and used, has little control over lease transfers, and no approval rights regarding the use of the premises. After all this, the major tenant walks because it decides that it can't make any money in the premises.
See Agreements For Industrial Leases
See Agreements For Warehouse And Distribution Center Leases
See Strategies For Industrial Leases
Copyright © 1984-2020 by Leasing Professional. All rights reserved. SSL By PositiveSSL.
Use of this site and sales of LP products are subject to LP's Terms Of Use And Sale.