<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Help on Assigning Values Based on Previous and Future Values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67215#M14530</link>
    <description>Hi Peter,&lt;BR /&gt;
The code i wrote is just a start. If there is better solution that you can suggest, it'll be very helpful.&lt;BR /&gt;
&lt;BR /&gt;
The project is related to Health Care domain.&lt;BR /&gt;
This program actually fills Holes in the data, that is, populating a particular category of Population which is missing in the source survey, using 3 methods, namely, Year Alternate, Gender Alternate and Region Alternate. And eventually a weight is assigned to an individual which will then be projected to National Level Stats. That is, the total number of patients in a particular category multiplied by the Weight is the National Projection&lt;BR /&gt;
&lt;BR /&gt;
This process of filling missing values is done on a Yearly process. That is to say, we do quarterly refreshes and each time, the data increases by a quarter, starting from 01jan2005.&lt;BR /&gt;
&lt;BR /&gt;
Tee weights assignment happens in a very complex manner based on &lt;BR /&gt;
Age Group(0-4(1), 5-25(2), 26-40(3), 41-65(4), 65+(5)), &lt;BR /&gt;
Region of Resindence(E(1),W(2),N(3),S(4)), &lt;BR /&gt;
Gender(Male(1),Female(2)), &lt;BR /&gt;
Drug Claim Indicator, &lt;BR /&gt;
Medical Claim Indicator, &lt;BR /&gt;
Chronic Condition Indicator. &lt;BR /&gt;
We have a reference source A which will have Weights Assigned for all and every possible group of patients.Consider that there is one group (1,1,1,0,0,0)  that has a weight of 0. This missing weight has to be populated from one of the following methods(First Non Blank Value)&lt;BR /&gt;
&lt;BR /&gt;
1. Look for the same group across other years and get the weight (Year Alternate).&lt;BR /&gt;
2. If NO weight is available in Year Alternate, then check for (1,1,2,0,0,0) and get the New Weight.(Gender Alternate)&lt;BR /&gt;
3. If NO weight available in Gender Alt, Then the remaing 3 regions are taken into consideration (1,2,1,0,0,0), (1,3,1,0,0,0) and (1,4,1,0,0,0) and a ratio is calculated for each of the three (some formula). The ratio for the region that is close to 1 is considered and the corresponding weight is assigned to our data.&lt;BR /&gt;
&lt;BR /&gt;
The reason why I want to create those macro variables is to eliminate human error(we have about 43 SAS Programs that constitue one build). As the data increases by year, so are the number if macro variables(if done manually, there is a chance that one might not update the code with the required number of Year Macro Variables.&lt;BR /&gt;
&lt;BR /&gt;
My problem does not end there. After the required number of Year macro variables are created, there are the same number of Hash Objects also being created, One hash object per year. These also keep increasing as the number of years of data increases (which is my next peice of automation).&lt;BR /&gt;
&lt;BR /&gt;
Hope the above explanation is helpful.</description>
    <pubDate>Mon, 31 Jan 2011 11:24:28 GMT</pubDate>
    <dc:creator>bhavani</dc:creator>
    <dc:date>2011-01-31T11:24:28Z</dc:date>
    <item>
      <title>Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67213#M14528</link>
      <description>Hi &lt;BR /&gt;
I have this issue where in I am trying to automate a SAS Program.&lt;BR /&gt;
&lt;BR /&gt;
For every year in process, if a variable does not have value from current year, then i have to check the Previous Year Value and Assign it to the current year; if that value is also blank, then I have to check each subsequent year values and get the first Non missing value. For this I have to define a few macro variables that depends on the number of years in process. For example, if my processing dates are '01JAN2005' till '30JUN2010', the number of Year macro variables will be 5 as&lt;BR /&gt;
&lt;BR /&gt;
The code construct is as below:&lt;BR /&gt;
%if &amp;amp;year=2005 %then %do;&lt;BR /&gt;
		%let year1=2006; %let year2=2007; %let year3=2008; %let year4=2009;%let year5=2010;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2006 %then %do;&lt;BR /&gt;
		%let year1=2005; %let year2=2007; %let year3=2008; %let year4=2009;%let year5=2010;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2007 %then %do;&lt;BR /&gt;
		%let year1=2006; %let year2=2008; %let year3=2009; %let year4=2010;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2008 %then %do;&lt;BR /&gt;
		%let year1=2007; %let year2=2009; %let year3=2010; %let year4=2006;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2009 %then %do;&lt;BR /&gt;
		%let year1=2008; %let year2=2010; %let year3=2007; %let year4=2006;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2010 %then %do;&lt;BR /&gt;
		%let year1=2009; %let year2=2008; %let year3=2007; %let year4=2006;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
&lt;BR /&gt;
and so on and so forth.&lt;BR /&gt;
&lt;BR /&gt;
I had tried using arrays and succeeded a bit, but not in the order that i wanted.&lt;BR /&gt;
Using this code, I was able to create the number of macro variables that i need. THe problem is with assigning the correct year values as I mentioned above.&lt;BR /&gt;
&lt;BR /&gt;
Is there a solution.&lt;BR /&gt;
&lt;BR /&gt;
&lt;B&gt;The code I used:&lt;/B&gt;&lt;BR /&gt;
The GBLDATES is a control dataset that we use to build macro calls and do other processing as well&lt;BR /&gt;
&lt;BR /&gt;
data gbldates (keep=year st_dt en_dt c);&lt;BR /&gt;
	length year 8 c st_dt en_dt end_1 numyr begyr curyr 8;&lt;BR /&gt;
	format st_dt en_dt end_1 date9.;&lt;BR /&gt;
	retain c 0;&lt;BR /&gt;
	format end_1 date9.;&lt;BR /&gt;
	**Initialize Begin Year;&lt;BR /&gt;
	begyr=2004;&lt;BR /&gt;
&lt;BR /&gt;
	**Initialize Current Year;&lt;BR /&gt;
	curyr=year(today());&lt;BR /&gt;
&lt;BR /&gt;
	**Calculate Total Number Of Year;&lt;BR /&gt;
	numyr=curyr-begyr;&lt;BR /&gt;
&lt;BR /&gt;
	** Establish Extract Start Date;&lt;BR /&gt;
	st_dt=intnx('year',today(), -numyr,'b');&lt;BR /&gt;
&lt;BR /&gt;
	** Establish Extract End Date;&lt;BR /&gt;
	end_1=intnx('quarter',intnx('year',today(),-1,'b'),&amp;amp;qtr.,'e');&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
	** Establish First Quarter End Date from Start Date;&lt;BR /&gt;
	en_dt=intnx('quarter',intnx('year',st_dt,0,'b'),0,'e');&lt;BR /&gt;
&lt;BR /&gt;
	if (en_dt &amp;gt; end_1) then do;&lt;BR /&gt;
		st_dt=st_dt;&lt;BR /&gt;
		en_dt=end_1;&lt;BR /&gt;
	end;&lt;BR /&gt;
&lt;BR /&gt;
	year = year(st_dt);&lt;BR /&gt;
	c+1;&lt;BR /&gt;
	output;&lt;BR /&gt;
&lt;BR /&gt;
	do while(en_dt&lt;END_1&gt;
		st_dt=en_dt+1;&lt;BR /&gt;
		en_dt=intnx('quarter',st_dt,0,'e');&lt;BR /&gt;
&lt;BR /&gt;
		if (en_dt&amp;gt;end_1) then do;&lt;BR /&gt;
			st_dt=st_dt;&lt;BR /&gt;
			en_dt=end_1;&lt;BR /&gt;
		end;&lt;BR /&gt;
		year = year(st_dt);&lt;BR /&gt;
		c+1;&lt;BR /&gt;
		output;&lt;BR /&gt;
	end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
filename tmp1 temp;&lt;BR /&gt;
%let Numyrs=;&lt;BR /&gt;
%let begsasdt='01JAN2005';&lt;BR /&gt;
%let endsasdt='30JUN2010'&lt;BR /&gt;
&lt;BR /&gt;
%macro test;&lt;BR /&gt;
	data _null_;&lt;BR /&gt;
		BegYr=year(&amp;amp;begsasdt.D);&lt;BR /&gt;
		EndYr=year(&amp;amp;endsasdt.D);&lt;BR /&gt;
&lt;BR /&gt;
		numyrs=EndYr-BegYr;&lt;BR /&gt;
&lt;BR /&gt;
		call symput ('Numyrs',put(numyrs,2.));&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
	data sample(Keep=Year year_1-year_%sysfunc(compress(&amp;amp;Numyrs.)));&lt;BR /&gt;
		set gbldates end=eof;&lt;BR /&gt;
		array years{&amp;amp;numyrs.} year_1-year_%sysfunc(compress(&amp;amp;Numyrs.));&lt;BR /&gt;
&lt;BR /&gt;
		do i = 2005 to 2010;&lt;BR /&gt;
			do j = 1 to &amp;amp;numyrs.;&lt;BR /&gt;
				Years(j)=i;&lt;BR /&gt;
				output;&lt;BR /&gt;
			end;&lt;BR /&gt;
		end;&lt;BR /&gt;
		if eof then stop;&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
	proc sort data=sample out=test nodupkey;&lt;BR /&gt;
		by year year_1-year_%sysfunc(compress(&amp;amp;Numyrs.));&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
	data test_1(keep=Year Year_1);&lt;BR /&gt;
		set test(where=(year&amp;gt;2004));&lt;BR /&gt;
		by year year_1 ;&lt;BR /&gt;
&lt;BR /&gt;
		if first.year_1;&lt;BR /&gt;
		if year=year_1 then delete;&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
%mend;&lt;BR /&gt;
&lt;BR /&gt;
%test;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=test_1;&lt;BR /&gt;
	by year year_1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data _null_;&lt;BR /&gt;
	Length string $50 ;&lt;BR /&gt;
	Retain String i 0;&lt;BR /&gt;
	set test_1 end=eof;&lt;BR /&gt;
	by Year;&lt;BR /&gt;
	file tmp1;&lt;BR /&gt;
&lt;BR /&gt;
	if first.year then do;&lt;BR /&gt;
		c=1;&lt;BR /&gt;
		buildif='%if &amp;amp;year='||put(year,4.)||' %then %do;';&lt;BR /&gt;
		put buildif;&lt;BR /&gt;
	end;&lt;BR /&gt;
	string='%Let Year'||compress(put(c,2.))||'='||put(year_1,4.)||';';&lt;BR /&gt;
	put @5 string;&lt;BR /&gt;
	c+1;&lt;BR /&gt;
	if last.year then do;&lt;BR /&gt;
		buildifend='%end;';&lt;BR /&gt;
		put buildifend;&lt;BR /&gt;
	end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
THE OUTPUT from the Temporary Files Created:&lt;BR /&gt;
%if &amp;amp;year=2005 %then %do;&lt;BR /&gt;
    %Let Year1=2006;&lt;BR /&gt;
    %Let Year2=2007;&lt;BR /&gt;
    %Let Year3=2008;&lt;BR /&gt;
    %Let Year4=2009;&lt;BR /&gt;
    %Let Year5=2010;&lt;BR /&gt;
%end;&lt;BR /&gt;
%if &amp;amp;year=2006 %then %do;&lt;BR /&gt;
    %Let Year1=2005;&lt;BR /&gt;
    %Let Year2=2007;&lt;BR /&gt;
    %Let Year3=2008;&lt;BR /&gt;
    %Let Year4=2009;&lt;BR /&gt;
    %Let Year5=2010;&lt;BR /&gt;
%end;&lt;BR /&gt;
%if &amp;amp;year=2007 %then %do;&lt;BR /&gt;
    %Let Year1=2005;&lt;BR /&gt;
    %Let Year2=2006;&lt;BR /&gt;
    %Let Year3=2008;&lt;BR /&gt;
    %Let Year4=2009;&lt;BR /&gt;
    %Let Year5=2010;&lt;BR /&gt;
%end;&lt;BR /&gt;
%if &amp;amp;year=2008 %then %do;&lt;BR /&gt;
    %Let Year1=2005;&lt;BR /&gt;
    %Let Year2=2006;&lt;BR /&gt;
    %Let Year3=2007;&lt;BR /&gt;
    %Let Year4=2009;&lt;BR /&gt;
    %Let Year5=2010;&lt;BR /&gt;
%end;&lt;BR /&gt;
%if &amp;amp;year=2009 %then %do;&lt;BR /&gt;
    %Let Year1=2005;&lt;BR /&gt;
    %Let Year2=2006;&lt;BR /&gt;
    %Let Year3=2007;&lt;BR /&gt;
    %Let Year4=2008;&lt;BR /&gt;
    %Let Year5=2010;&lt;BR /&gt;
%end;&lt;BR /&gt;
%if &amp;amp;year=2010 %then %do;&lt;BR /&gt;
    %Let Year1=2005;&lt;BR /&gt;
    %Let Year2=2006;&lt;BR /&gt;
    %Let Year3=2007;&lt;BR /&gt;
    %Let Year4=2008;&lt;BR /&gt;
    %Let Year5=2009;&lt;BR /&gt;
%end;&lt;/END_1&gt;</description>
      <pubDate>Mon, 31 Jan 2011 08:53:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67213#M14528</guid>
      <dc:creator>bhavani</dc:creator>
      <dc:date>2011-01-31T08:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67214#M14529</link>
      <description>bhavani&lt;BR /&gt;
 &lt;BR /&gt;
&amp;gt; Hi &lt;BR /&gt;
&amp;gt; I have this issue where in I am trying to automate a&lt;BR /&gt;
&amp;gt; SAS Program.&lt;BR /&gt;
&amp;gt; &lt;BR /&gt;
&amp;gt; For every year in process, if a variable does not&lt;BR /&gt;
&amp;gt; have value from current year, then i have to check&lt;BR /&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; ..... lots more text &amp;lt; &amp;lt; &amp;lt; &amp;lt; &lt;BR /&gt;
&amp;gt;&lt;BR /&gt;
&amp;gt; THE OUTPUT from the Temporary Files Created:&lt;BR /&gt;
&amp;gt; %if &amp;amp;year=2005 %then %do;&lt;BR /&gt;
&amp;gt; %let Year1=2006;&lt;BR /&gt;
&amp;gt; %let Year2=2007;&lt;BR /&gt;
&amp;gt; %let Year3=2008;&lt;BR /&gt;
&amp;gt; %let Year4=2009;&lt;BR /&gt;
&amp;gt; %let Year5=2010;&lt;BR /&gt;
&amp;gt; %end;&lt;BR /&gt;
&amp;gt; %if &amp;amp;year=2006 %then %do;&lt;BR /&gt;
&amp;gt; %let Year1=2005;&lt;BR /&gt;
&amp;gt; %let Year2=2007;&lt;BR /&gt;
&amp;gt; %let Year3=2008;&lt;BR /&gt;
&amp;gt; %let Year4=2009;&lt;BR /&gt;
&amp;gt; %let Year5=2010;&lt;BR /&gt;
&amp;gt; %end;&lt;BR /&gt;
&amp;gt; %if &amp;amp;year=2007 %then %do;&lt;BR /&gt;
&amp;gt; %let Year1=2005;&lt;BR /&gt;
&amp;gt; %let Year2=2006;&lt;BR /&gt;
&amp;gt; %let Year3=2008;&lt;BR /&gt;
&amp;gt; %let Year4=2009;&lt;BR /&gt;
&amp;gt; %let Year5=2010;&lt;BR /&gt;
&amp;gt; %end;&lt;BR /&gt;
&amp;gt; %if &amp;amp;year=2008 %then %do;&lt;BR /&gt;
&amp;gt; %let Year1=2005;&lt;BR /&gt;
&amp;gt; %let Year2=2006;&lt;BR /&gt;
&amp;gt; %let Year3=2007;&lt;BR /&gt;
&amp;gt; %let Year4=2009;&lt;BR /&gt;
&amp;gt; %let Year5=2010;&lt;BR /&gt;
&amp;gt; %end;&lt;BR /&gt;
&amp;gt; %if &amp;amp;year=2009 %then %do;&lt;BR /&gt;
&amp;gt; %let Year1=2005;&lt;BR /&gt;
&amp;gt; %let Year2=2006;&lt;BR /&gt;
&amp;gt; %let Year3=2007;&lt;BR /&gt;
&amp;gt; %let Year4=2008;&lt;BR /&gt;
&amp;gt; %let Year5=2010;&lt;BR /&gt;
&amp;gt; %end;&lt;BR /&gt;
&amp;gt; %if &amp;amp;year=2010 %then %do;&lt;BR /&gt;
&amp;gt; %let Year1=2005;&lt;BR /&gt;
&amp;gt; %let Year2=2006;&lt;BR /&gt;
&amp;gt; %let Year3=2007;&lt;BR /&gt;
&amp;gt; %let Year4=2008;&lt;BR /&gt;
&amp;gt; %let Year5=2009;&lt;BR /&gt;
&amp;gt; %end;&lt;BR /&gt;
 &lt;BR /&gt;
 &lt;BR /&gt;
bhavani,&lt;BR /&gt;
&lt;BR /&gt;
I am not sure whether you want to be told&lt;I&gt; &lt;BR /&gt;
"you  are on the right lines, &lt;BR /&gt;
"I have read and discovered what you want to do, &lt;BR /&gt;
"and here is where you are almost there&lt;BR /&gt;
"with just this ????? to add"&lt;/I&gt;&lt;BR /&gt;
or whether you just want to create this kind of collection of macro variable values&lt;BR /&gt;
&lt;BR /&gt;
 &lt;BR /&gt;
I don't see your route to the collection of macro variables and their values as the most effective, obvious or neccessary&lt;BR /&gt;
 &lt;BR /&gt;
&lt;B&gt;Do you want us to create a better solution, &lt;BR /&gt;
or fix your convoluted program?&lt;/B&gt;&lt;BR /&gt;
&lt;BR /&gt;
We might be even more helpful if we understood the purpose of the macro variables you are trying to generate. &lt;B&gt;Are you able to explain why?&lt;/B&gt;&lt;BR /&gt;
  &lt;BR /&gt;
 peterC</description>
      <pubDate>Mon, 31 Jan 2011 10:31:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67214#M14529</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-01-31T10:31:31Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67215#M14530</link>
      <description>Hi Peter,&lt;BR /&gt;
The code i wrote is just a start. If there is better solution that you can suggest, it'll be very helpful.&lt;BR /&gt;
&lt;BR /&gt;
The project is related to Health Care domain.&lt;BR /&gt;
This program actually fills Holes in the data, that is, populating a particular category of Population which is missing in the source survey, using 3 methods, namely, Year Alternate, Gender Alternate and Region Alternate. And eventually a weight is assigned to an individual which will then be projected to National Level Stats. That is, the total number of patients in a particular category multiplied by the Weight is the National Projection&lt;BR /&gt;
&lt;BR /&gt;
This process of filling missing values is done on a Yearly process. That is to say, we do quarterly refreshes and each time, the data increases by a quarter, starting from 01jan2005.&lt;BR /&gt;
&lt;BR /&gt;
Tee weights assignment happens in a very complex manner based on &lt;BR /&gt;
Age Group(0-4(1), 5-25(2), 26-40(3), 41-65(4), 65+(5)), &lt;BR /&gt;
Region of Resindence(E(1),W(2),N(3),S(4)), &lt;BR /&gt;
Gender(Male(1),Female(2)), &lt;BR /&gt;
Drug Claim Indicator, &lt;BR /&gt;
Medical Claim Indicator, &lt;BR /&gt;
Chronic Condition Indicator. &lt;BR /&gt;
We have a reference source A which will have Weights Assigned for all and every possible group of patients.Consider that there is one group (1,1,1,0,0,0)  that has a weight of 0. This missing weight has to be populated from one of the following methods(First Non Blank Value)&lt;BR /&gt;
&lt;BR /&gt;
1. Look for the same group across other years and get the weight (Year Alternate).&lt;BR /&gt;
2. If NO weight is available in Year Alternate, then check for (1,1,2,0,0,0) and get the New Weight.(Gender Alternate)&lt;BR /&gt;
3. If NO weight available in Gender Alt, Then the remaing 3 regions are taken into consideration (1,2,1,0,0,0), (1,3,1,0,0,0) and (1,4,1,0,0,0) and a ratio is calculated for each of the three (some formula). The ratio for the region that is close to 1 is considered and the corresponding weight is assigned to our data.&lt;BR /&gt;
&lt;BR /&gt;
The reason why I want to create those macro variables is to eliminate human error(we have about 43 SAS Programs that constitue one build). As the data increases by year, so are the number if macro variables(if done manually, there is a chance that one might not update the code with the required number of Year Macro Variables.&lt;BR /&gt;
&lt;BR /&gt;
My problem does not end there. After the required number of Year macro variables are created, there are the same number of Hash Objects also being created, One hash object per year. These also keep increasing as the number of years of data increases (which is my next peice of automation).&lt;BR /&gt;
&lt;BR /&gt;
Hope the above explanation is helpful.</description>
      <pubDate>Mon, 31 Jan 2011 11:24:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67215#M14530</guid>
      <dc:creator>bhavani</dc:creator>
      <dc:date>2011-01-31T11:24:28Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67216#M14531</link>
      <description>This is the exact Code construct. This is only a psuedo code. Hope it helps.&lt;BR /&gt;
&lt;BR /&gt;
%macro hole_fill_com(year);&lt;BR /&gt;
	&lt;BR /&gt;
	** NEEDS AUTOMATION ****;&lt;BR /&gt;
	%if &amp;amp;year=2005 %then %do;&lt;BR /&gt;
		%let year1=2006; %let year2=2007; %let year3=2008; %let year4=2009;%let year5=2010;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2006 %then %do;&lt;BR /&gt;
		%let year1=2005; %let year2=2007; %let year3=2008; %let year4=2009;%let year5=2010;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2007 %then %do;&lt;BR /&gt;
		%let year1=2006; %let year2=2008; %let year3=2009; %let year4=2010;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2008 %then %do;&lt;BR /&gt;
		%let year1=2007; %let year2=2009; %let year3=2010; %let year4=2006;%let year5=2005;&lt;BR /&gt;
&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2009 %then %do;&lt;BR /&gt;
		%let year1=2008; %let year2=2010; %let year3=2007; %let year4=2006;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	%else %if &amp;amp;year=2010 %then %do;&lt;BR /&gt;
		%let year1=2009; %let year2=2008; %let year3=2007; %let year4=2006;%let year5=2005;&lt;BR /&gt;
	%end;&lt;BR /&gt;
&lt;BR /&gt;
	****************************************************************************;&lt;BR /&gt;
	*                     YEAR ALTERNATE METHOD                                *;&lt;BR /&gt;
	****************************************************************************;&lt;BR /&gt;
	data X_filled_yr_alt_&amp;amp;year.&lt;BR /&gt;
		X_nofill_yr_alt_&amp;amp;year.;&lt;BR /&gt;
		length    method $10. totals_&amp;amp;year1 totals_&amp;amp;year2 totals_&amp;amp;year3&lt;BR /&gt;
				totals_&amp;amp;year4 totals_&amp;amp;year5 weights_&amp;amp;year1&lt;BR /&gt;
				weights_&amp;amp;year2 weights_&amp;amp;year3 weights_&amp;amp;year4&lt;BR /&gt;
				weights_&amp;amp;year5 8.;&lt;BR /&gt;
				&lt;BR /&gt;
		if _n_=1 then do;&lt;BR /&gt;
			** NEEDS AUTOMATION ****;&lt;BR /&gt;
			declare hash y1(dataset:"A_&amp;amp;year1.",hashexp:10);&lt;BR /&gt;
			y1.definekey('proj_key');&lt;BR /&gt;
			y1.definedata("totals_&amp;amp;year1.","weights_&amp;amp;year1.");&lt;BR /&gt;
			y1.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y2(dataset:"A_&amp;amp;year2.",hashexp:10);&lt;BR /&gt;
			y2.definekey('Key');&lt;BR /&gt;
			y2.definedata("totals_&amp;amp;year2.","weights_&amp;amp;year2.");&lt;BR /&gt;
			y2.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y3(dataset:"A_&amp;amp;year3.",hashexp:10);&lt;BR /&gt;
			y3.definekey('Key');&lt;BR /&gt;
			y3.definedata("totals_&amp;amp;year3.","weights_&amp;amp;year3.");&lt;BR /&gt;
			y3.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y4(dataset:"A_&amp;amp;year4.",hashexp:10);&lt;BR /&gt;
			y4.definekey('Key');&lt;BR /&gt;
			y4.definedata("totals_&amp;amp;year4.","weights_&amp;amp;year4.");&lt;BR /&gt;
			y4.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y5(dataset:"A_&amp;amp;year5.",hashexp:10);&lt;BR /&gt;
			y5.definekey('Key');&lt;BR /&gt;
			y5.definedata("totals_&amp;amp;year5.","Weights_&amp;amp;year5.");&lt;BR /&gt;
			y5.definedone();&lt;BR /&gt;
			&lt;BR /&gt;
			** ADD HASH FOR NEW DATA AS REQUIRED;&lt;BR /&gt;
&lt;BR /&gt;
			call missing(of _all_);&lt;BR /&gt;
		end;&lt;BR /&gt;
		set X_&amp;amp;year._holes;&lt;BR /&gt;
		&lt;BR /&gt;
		** NEEDS AUTOMATION ****;&lt;BR /&gt;
		if y1.find()=0 then do;&lt;BR /&gt;
			*** DO SOME PROCESSING;&lt;BR /&gt;
			output X_filled_yr_alt_&amp;amp;year.;&lt;BR /&gt;
			else if y2.find()=0 then do;&lt;BR /&gt;
				*** DO SOME PROCESSING;&lt;BR /&gt;
				output X_filled_yr_alt_&amp;amp;year.;&lt;BR /&gt;
				else if y3.find()=0 then do;&lt;BR /&gt;
					*** DO SOME PROCESSING;&lt;BR /&gt;
					output X_filled_yr_alt_&amp;amp;year.;&lt;BR /&gt;
					else if y4.find()=0 then do;&lt;BR /&gt;
						*** DO SOME PROCESSING;&lt;BR /&gt;
						output X_filled_yr_alt_&amp;amp;year.;&lt;BR /&gt;
						else if y5.find()=0 then do;&lt;BR /&gt;
							*** DO SOME PROCESSING;&lt;BR /&gt;
							output X_filled_yr_alt_&amp;amp;year.;&lt;BR /&gt;
							else output X_nofill_yr_alt_&amp;amp;year.;&lt;BR /&gt;
						end;&lt;BR /&gt;
					end;&lt;BR /&gt;
				end;&lt;BR /&gt;
			end;&lt;BR /&gt;
		end;&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
	****************************************************************************;&lt;BR /&gt;
	*                      GENDER ALTERNATE METHOD                             *;&lt;BR /&gt;
	****************************************************************************;&lt;BR /&gt;
	data X_nofill_yr_alt_&amp;amp;year.;&lt;BR /&gt;
		length New_Kwy $6.;&lt;BR /&gt;
		set X_nofill_yr_alt_&amp;amp;year.;&lt;BR /&gt;
		rename totals_&amp;amp;year.=totals_gend_&amp;amp;year.;&lt;BR /&gt;
		if substr(proj_key,3,1)='1'&lt;BR /&gt;
			then proj_key_new=substr(proj_key,1,2)||'2'||substr(proj_key,4,3);&lt;BR /&gt;
		else if substr(proj_key,3,1)='2'&lt;BR /&gt;
			then proj_key_new=substr(proj_key,1,2)||'1'||substr(proj_key,4,3);&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
	data X_filled_gen_alt_&amp;amp;year.&lt;BR /&gt;
		X_nofill_gen_alt_&amp;amp;year.;&lt;BR /&gt;
&lt;BR /&gt;
		length method $10. totals_&amp;amp;year totals_&amp;amp;year1 totals_&amp;amp;year2&lt;BR /&gt;
			  totals_&amp;amp;year3 totals_&amp;amp;year4 totals_&amp;amp;year5 weights_&amp;amp;year&lt;BR /&gt;
			  weights_&amp;amp;year1 weights_&amp;amp;year2 weights_&amp;amp;year3&lt;BR /&gt;
			  weights_&amp;amp;year4 weights_&amp;amp;year5 8.;&lt;BR /&gt;
		if _n_=1 then do;&lt;BR /&gt;
			&lt;BR /&gt;
			** NEEDS AUTOMATION ****;&lt;BR /&gt;
			declare hash y1(dataset:"A_&amp;amp;year1.",hashexp:10);&lt;BR /&gt;
			y1.definekey('proj_key');&lt;BR /&gt;
			y1.definedata("totals_&amp;amp;year1.","weights_&amp;amp;year1.");&lt;BR /&gt;
			y1.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y2(dataset:"A_&amp;amp;year2.",hashexp:10);&lt;BR /&gt;
			y2.definekey('Key');&lt;BR /&gt;
			y2.definedata("totals_&amp;amp;year2.","weights_&amp;amp;year2.");&lt;BR /&gt;
			y2.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y3(dataset:"A_&amp;amp;year3.",hashexp:10);&lt;BR /&gt;
			y3.definekey('Key');&lt;BR /&gt;
			y3.definedata("totals_&amp;amp;year3.","weights_&amp;amp;year3.");&lt;BR /&gt;
			y3.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y4(dataset:"A_&amp;amp;year4.",hashexp:10);&lt;BR /&gt;
			y4.definekey('Key');&lt;BR /&gt;
			y4.definedata("totals_&amp;amp;year4.","weights_&amp;amp;year4.");&lt;BR /&gt;
			y4.definedone();&lt;BR /&gt;
&lt;BR /&gt;
			declare hash y5(dataset:"A_&amp;amp;year5.",hashexp:10);&lt;BR /&gt;
			y5.definekey('Key');&lt;BR /&gt;
			y5.definedata("totals_&amp;amp;year5.","Weights_&amp;amp;year5.");&lt;BR /&gt;
			y5.definedone();&lt;BR /&gt;
			&lt;BR /&gt;
			** ADD HASH FOR NEW DATA AS REQUIRED;&lt;BR /&gt;
&lt;BR /&gt;
			call missing(of _all_);&lt;BR /&gt;
		end;&lt;BR /&gt;
		&lt;BR /&gt;
		set X_nofill_yr_alt_&amp;amp;year.;&lt;BR /&gt;
		&lt;BR /&gt;
		** NEEDS AUTOMATION ****;&lt;BR /&gt;
		if y.find()=0 then do;&lt;BR /&gt;
			*** DO SOME PROCESSING;&lt;BR /&gt;
			output X_filled_gen_alt_&amp;amp;year.;&lt;BR /&gt;
			else if y1.find()=0 then do;&lt;BR /&gt;
				*** DO SOME PROCESSING;&lt;BR /&gt;
				output X_filled_gen_alt_&amp;amp;year.;&lt;BR /&gt;
				else if y2.find()=0 then do;&lt;BR /&gt;
					*** DO SOME PROCESSING;&lt;BR /&gt;
					output X_filled_gen_alt_&amp;amp;year.;&lt;BR /&gt;
					else if y3.find()=0 then do;&lt;BR /&gt;
						*** DO SOME PROCESSING;&lt;BR /&gt;
						output X_filled_gen_alt_&amp;amp;year.;&lt;BR /&gt;
						else if y4.find()=0 then do;&lt;BR /&gt;
							*** DO SOME PROCESSING;&lt;BR /&gt;
							output X_filled_gen_alt_&amp;amp;year.;&lt;BR /&gt;
							else if y5.find()=0 then do;&lt;BR /&gt;
								*** DO SOME PROCESSING;&lt;BR /&gt;
								output X_filled_gen_alt_&amp;amp;year.;&lt;BR /&gt;
								else output X_nofill_gen_alt_&amp;amp;year.;&lt;BR /&gt;
							end;&lt;BR /&gt;
						end;&lt;BR /&gt;
					end;&lt;BR /&gt;
				end;&lt;BR /&gt;
			end;&lt;BR /&gt;
		end;&lt;BR /&gt;
	run;&lt;BR /&gt;
&lt;BR /&gt;
	****************************************************************************;&lt;BR /&gt;
	*                       REGION ALTERNATE METHOD                            *;&lt;BR /&gt;
	****************************************************************************;&lt;BR /&gt;
	&lt;BR /&gt;
	%macro region_alt(chk_yr,indst,outdst,yr);&lt;BR /&gt;
&lt;BR /&gt;
		data X_filled_reg_&amp;amp;yr._alt_&amp;amp;year.&lt;BR /&gt;
			&amp;amp;outdst.;&lt;BR /&gt;
&lt;BR /&gt;
			length proj_key_1 proj_key_2 proj_key_3 $6. totals_1 totals_2&lt;BR /&gt;
				totals_3 weights_1 weights_2 weights_3 8.;&lt;BR /&gt;
			if _n_=1 then do;&lt;BR /&gt;
				declare hash re1(dataset:"A_&amp;amp;chk_yr.",hashexp:10);&lt;BR /&gt;
				re1.definekey('proj_key_1');&lt;BR /&gt;
				re1.definedata('totals_1','weights_1');&lt;BR /&gt;
				re1.definedone();&lt;BR /&gt;
&lt;BR /&gt;
				declare hash re2(dataset:"A_&amp;amp;chk_yr.",hashexp:10);&lt;BR /&gt;
				re2.definekey('proj_key_2');&lt;BR /&gt;
				re2.definedata('totals_2','weights_2');&lt;BR /&gt;
				re2.definedone();&lt;BR /&gt;
&lt;BR /&gt;
				declare hash re3(dataset:"A_&amp;amp;chk_yr.",hashexp:10);&lt;BR /&gt;
				re3.definekey('proj_key_3');&lt;BR /&gt;
				re3.definedata('totals_3','weights_3');&lt;BR /&gt;
				re3.definedone();&lt;BR /&gt;
&lt;BR /&gt;
				call missing(of _all_);&lt;BR /&gt;
			end;&lt;BR /&gt;
			set &amp;amp;indst;&lt;BR /&gt;
			*** DO PROCESSING;&lt;BR /&gt;
			*** DO PROCESSING;&lt;BR /&gt;
			*** DO PROCESSING;&lt;BR /&gt;
			if new_weights_&amp;amp;year.=0 then output &amp;amp;outdst.;&lt;BR /&gt;
			else output X_filled_reg_&amp;amp;yr._alt_&amp;amp;year.;&lt;BR /&gt;
		run;&lt;BR /&gt;
&lt;BR /&gt;
	%mend region_alt;&lt;BR /&gt;
	&lt;BR /&gt;
	** NEEDS AUTOMATION ****;&lt;BR /&gt;
	%region_alt(&amp;amp;year , X_nofill_gen_alt_&amp;amp;year.,    X_nofill_reg_y_alt_&amp;amp;year. ,y );&lt;BR /&gt;
	%region_alt(&amp;amp;year1, X_nofill_reg_y_alt_&amp;amp;year. , X_nofill_reg_y1_alt_&amp;amp;year.,y1);&lt;BR /&gt;
	%region_alt(&amp;amp;year2, X_nofill_reg_y1_alt_&amp;amp;year., X_nofill_reg_y2_alt_&amp;amp;year.,y2);&lt;BR /&gt;
	%region_alt(&amp;amp;year3, X_nofill_reg_y2_alt_&amp;amp;year., X_nofill_reg_y3_alt_&amp;amp;year.,y3);&lt;BR /&gt;
	%region_alt(&amp;amp;year4, X_nofill_reg_y3_alt_&amp;amp;year., X_nofill_reg_y4_alt_&amp;amp;year.,y4);&lt;BR /&gt;
	%region_alt(&amp;amp;year5, X_nofill_reg_y4_alt_&amp;amp;year., X_nofill_reg_y5_alt_&amp;amp;year.,y5);&lt;BR /&gt;
	&lt;BR /&gt;
	** NEEDS AUTOMATION ****;&lt;BR /&gt;
	proc append base=X_filled_reg_y_alt_&amp;amp;year. data=X_filled_reg_y1_alt_&amp;amp;year. force;run;&lt;BR /&gt;
	proc append base=X_filled_reg_y_alt_&amp;amp;year. data=X_filled_reg_y2_alt_&amp;amp;year. force;run;&lt;BR /&gt;
	proc append base=X_filled_reg_y_alt_&amp;amp;year. data=X_filled_reg_y3_alt_&amp;amp;year. force;run;&lt;BR /&gt;
	proc append base=X_filled_reg_y_alt_&amp;amp;year. data=X_filled_reg_y4_alt_&amp;amp;year. force;run;&lt;BR /&gt;
	proc append base=X_filled_reg_y_alt_&amp;amp;year. data=X_filled_reg_y5_alt_&amp;amp;year. force;run;&lt;BR /&gt;
&lt;BR /&gt;
	**** DO REMAINING PROCESSING;&lt;BR /&gt;
&lt;BR /&gt;
%mend hole_fill_com;&lt;BR /&gt;
	&lt;BR /&gt;
****************************************************************************;&lt;BR /&gt;
%macro nw_mepscom;&lt;BR /&gt;
	%do i = %sysfunc(year(&amp;amp;begsasdt.D)) %to %sysfunc(year(&amp;amp;endsasdt.D));&lt;BR /&gt;
		** Invoke the HOLE_FILL_COM Macro with the required Paramters ;&lt;BR /&gt;
		%hole_fill_com(&amp;amp;i.);&lt;BR /&gt;
	%end;&lt;BR /&gt;
%mend;&lt;BR /&gt;
&lt;BR /&gt;
%nw_mepscom;</description>
      <pubDate>Mon, 31 Jan 2011 12:29:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67216#M14531</guid>
      <dc:creator>bhavani</dc:creator>
      <dc:date>2011-01-31T12:29:13Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67217#M14532</link>
      <description>still considering the model for the imputation stage, but for the final stage here is a data step to generate the YEARn macro variables&lt;BR /&gt;
&lt;BR /&gt;
%let Yfrom = 2004 ;&lt;BR /&gt;
%let Yto   = 2010 ;&lt;BR /&gt;
%let YThis = 2004 ;&lt;BR /&gt;
&lt;BR /&gt;
data _null_  ;&lt;BR /&gt;
retain adj -1 ;&lt;BR /&gt;
do n = 1 to (&amp;amp;yTo - &amp;amp;yFrom)  ;&lt;BR /&gt;
year = n + &amp;amp;yFrom + adj ;&lt;BR /&gt;
if year = &amp;amp;yThis then adj=0; &lt;BR /&gt;
call symputx( 'year' !! put( n,2. -L), (&amp;amp;yFrom + n + adj) ) ;&lt;BR /&gt;
end;&lt;BR /&gt;
stop ;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
%put yThis=&amp;amp;Ythis %gen( %eval( &amp;amp;Yto - &amp;amp;yFrom), pattern=%nrstr(year###=&amp;amp;year### ) ) ;&lt;BR /&gt;
 &lt;BR /&gt;
(that gen macro (below) is very handy and GENerates a list which is a numbered list: %gen(6) generates  1 2 3 4 5 6. Here it generates year&amp;amp;n  = &amp;amp;&amp;amp;&amp;amp;year&amp;amp;n for each N)&lt;BR /&gt;
%macro gen(n, pattern=###, from=1)/des='peterC pattern generator' ;&lt;BR /&gt;
%local i ;&lt;BR /&gt;
%do i= &amp;amp;from %to &amp;amp;n ;&lt;BR /&gt;
%sysfunc( tranwrd( %superq(pattern), ###, &amp;amp;i ))&lt;BR /&gt;
%end ;&lt;BR /&gt;
 /* demo:&lt;BR /&gt;
%put demo %gen( 7, from=4,pattern= abc###ab### ) ;&lt;BR /&gt;
 */&lt;BR /&gt;
%mend  gen ;</description>
      <pubDate>Mon, 31 Jan 2011 12:36:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67217#M14532</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-01-31T12:36:51Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67218#M14533</link>
      <description>Hi Pete,&lt;BR /&gt;
The Gen Macro is sure a handy utility. But it does not serve my purpose entirely.&lt;BR /&gt;
It only generates a list of sequential macro varaibles(which is very good as i can use is at a number of places). &lt;BR /&gt;
&lt;BR /&gt;
Any work around/suggestions for the issue i stated!

Message was edited by: bhavani</description>
      <pubDate>Tue, 01 Feb 2011 02:45:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67218#M14533</guid>
      <dc:creator>bhavani</dc:creator>
      <dc:date>2011-02-01T02:45:04Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67219#M14534</link>
      <description>bhavani wrote:&lt;BR /&gt;&lt;BR /&gt;
&amp;gt; I have this issue where in I am trying to automate a&lt;BR /&gt;&lt;BR /&gt;
&amp;gt; SAS Program.&lt;BR /&gt;&lt;BR /&gt;
...&lt;BR /&gt;&lt;BR /&gt;
&amp;gt; I had tried using arrays and succeeded a bit, but not&lt;BR /&gt;&lt;BR /&gt;
&amp;gt; in the order that i wanted.&lt;BR /&gt;&lt;BR /&gt;
...&lt;BR /&gt;&lt;BR /&gt;
&lt;BR /&gt;&lt;BR /&gt;
OP's original question was a cute little coding challenge but has been ignored by everyone so far. It can be solved with a simple macro like below.&lt;BR /&gt;&lt;BR /&gt;
&lt;BR /&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%macro&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;yearOf(num,&amp;nbsp;year=&amp;amp;gYear,&amp;nbsp;start=&amp;amp;gStart,&amp;nbsp;finish=&amp;amp;gFinish);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%local&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;max&amp;nbsp;left&amp;nbsp;right;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;finish&amp;nbsp;&amp;lt;=&amp;nbsp;&amp;amp;start&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%return&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;year&amp;nbsp;&amp;lt;&amp;nbsp;&amp;amp;start&amp;nbsp;or&amp;nbsp;&amp;amp;finish&amp;nbsp;&amp;lt;&amp;nbsp;&amp;amp;year&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%return&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;max&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;finish&amp;nbsp;-&amp;nbsp;&amp;amp;start);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;num&amp;nbsp;&amp;lt;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;or&amp;nbsp;max&amp;nbsp;&amp;lt;&amp;nbsp;&amp;amp;num&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%return&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;year&amp;nbsp;=&amp;nbsp;&amp;amp;start&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;start&amp;nbsp;+&amp;nbsp;&amp;amp;num)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%else&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;year&amp;nbsp;=&amp;nbsp;&amp;amp;finish&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;finish&amp;nbsp;-&amp;nbsp;&amp;amp;num)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%else&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;left&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;year&amp;nbsp;-&amp;nbsp;&amp;amp;start&amp;nbsp;-&amp;nbsp;1);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;right&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;max&amp;nbsp;-&amp;nbsp;&amp;amp;left);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;num&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;start&amp;nbsp;+&amp;nbsp;&amp;amp;left)&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%else&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;num&amp;nbsp;&amp;lt;=&amp;nbsp;&amp;amp;right&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;start&amp;nbsp;+&amp;nbsp;&amp;amp;left&amp;nbsp;+&amp;nbsp;&amp;amp;num)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%else&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%if&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;right&amp;nbsp;&amp;lt;&amp;nbsp;&amp;amp;num&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%then&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;finish&amp;nbsp;-&amp;nbsp;&amp;amp;num)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%mend&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;yearOf;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;check.&amp;nbsp;how&amp;nbsp;to&amp;nbsp;use&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;gStart&amp;nbsp;=&amp;nbsp;2005;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;gFinish&amp;nbsp;=&amp;nbsp;2010;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;gYear&amp;nbsp;=&amp;nbsp;2007;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;year:&amp;nbsp;year1&amp;nbsp;year2&amp;nbsp;year3&amp;nbsp;year4&amp;nbsp;year5;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;gyear:&amp;nbsp;%yearOf(1)&amp;nbsp;&amp;nbsp;%yearOf(2)&amp;nbsp;&amp;nbsp;%yearOf(3)&amp;nbsp;&amp;nbsp;%yearOf(4)&amp;nbsp;&amp;nbsp;%yearOf(5);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;on&amp;nbsp;log&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;year:&amp;nbsp;year1&amp;nbsp;year2&amp;nbsp;year3&amp;nbsp;year4&amp;nbsp;year5&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2007:&amp;nbsp;2006&amp;nbsp;&amp;nbsp;2008&amp;nbsp;&amp;nbsp;2009&amp;nbsp;&amp;nbsp;2010&amp;nbsp;&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;another&amp;nbsp;check&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%macro&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;check(year,&amp;nbsp;start,&amp;nbsp;finish);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%local&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;n&amp;nbsp;max;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;max&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%eval&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;finish&amp;nbsp;-&amp;nbsp;&amp;amp;start);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*;&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;amp;year:&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;n&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%to&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;max;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*;&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;yearOf&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(&amp;amp;n,&amp;nbsp;year=&amp;amp;year,&amp;nbsp;start=&amp;amp;start,&amp;nbsp;finish=&amp;amp;finish)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%mend&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;check;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%macro&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;checkAll(start,&amp;nbsp;finish);&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%local&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;year;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;start=&amp;amp;start&amp;nbsp;finish=&amp;amp;finish;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%do&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;year&amp;nbsp;=&amp;nbsp;&amp;amp;start&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%to&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;amp;finish;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;%check(&amp;amp;year,&amp;nbsp;&amp;amp;start,&amp;nbsp;&amp;amp;finish);&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#0000FF;font-family:Courier New;font-size:10pt;"&gt;%end&lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#000080;font-family:Courier New;font-size:10pt;"&gt;%mend&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;checkAll;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;checkAll&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(start=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2005&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;,&amp;nbsp;finish=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2010&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;on&amp;nbsp;log&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;start=2005&amp;nbsp;finish=2010&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2005:&amp;nbsp;2006&amp;nbsp;2007&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2006:&amp;nbsp;2005&amp;nbsp;2007&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2007:&amp;nbsp;2006&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2008:&amp;nbsp;2007&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2009:&amp;nbsp;2008&amp;nbsp;2010&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2010:&amp;nbsp;2009&amp;nbsp;2008&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;checkAll&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(start=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2005&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;,&amp;nbsp;finish=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2011&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;on&amp;nbsp;log&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;start=2005&amp;nbsp;finish=2011&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2005:&amp;nbsp;2006&amp;nbsp;2007&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2006:&amp;nbsp;2005&amp;nbsp;2007&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2007:&amp;nbsp;2006&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2008:&amp;nbsp;2007&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2009:&amp;nbsp;2008&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2010:&amp;nbsp;2009&amp;nbsp;2011&amp;nbsp;2008&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2011:&amp;nbsp;2010&amp;nbsp;2009&amp;nbsp;2008&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;checkAll&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;(start=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2005&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;,&amp;nbsp;finish=&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style="color:#008080;font-family:Courier New;font-size:10pt;"&gt;2012&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%&lt;/SPAN&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;*--&amp;nbsp;on&amp;nbsp;log&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;start=2005&amp;nbsp;finish=2012&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2005:&amp;nbsp;2006&amp;nbsp;2007&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2012&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2006:&amp;nbsp;2005&amp;nbsp;2007&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2012&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2007:&amp;nbsp;2006&amp;nbsp;2008&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2012&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2008:&amp;nbsp;2007&amp;nbsp;2009&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2012&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2009:&amp;nbsp;2008&amp;nbsp;2010&amp;nbsp;2011&amp;nbsp;2012&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2010:&amp;nbsp;2009&amp;nbsp;2011&amp;nbsp;2012&amp;nbsp;2008&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2011:&amp;nbsp;2010&amp;nbsp;2012&amp;nbsp;2009&amp;nbsp;2008&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2012:&amp;nbsp;2011&amp;nbsp;2010&amp;nbsp;2009&amp;nbsp;2008&amp;nbsp;2007&amp;nbsp;2006&amp;nbsp;2005&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;
&lt;P style="padding:0"&gt;&lt;SPAN style="color:#008000;font-family:Courier New;font-size:10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;--*;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 01 Feb 2011 03:54:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67219#M14534</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2011-02-01T03:54:34Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67220#M14535</link>
      <description>Hi chang&lt;BR /&gt;
always like to see colorful solutions &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;BR /&gt;
 &lt;BR /&gt;
but what macro is supposed to execute at&lt;BR /&gt;
%yearNum(&amp;amp;n, year=&amp;amp;year, start=&amp;amp;start, finish=&amp;amp;finish)&lt;BR /&gt;
??&lt;BR /&gt;
 &lt;BR /&gt;
peterC&lt;BR /&gt;
Oh, and try out my approach. &lt;BR /&gt;
I thought it was achieving the stated OP objective. As evidence, here is a log (shame my editor does not pass the attributes in "style" like your code)&lt;BR /&gt;
I've packaged it in a macro to make the demo simpler[pre]177  %macro deliver( YThis = 2005, Yfrom = 2005, Yto = 2010 );&lt;BR /&gt;
178  %global %gen( %eval( &amp;amp;yTo -&amp;amp;yFrom), pattern= year### ) ;&lt;BR /&gt;
179  data _null_  ;&lt;BR /&gt;
180  retain adj -1 ;&lt;BR /&gt;
181  do n = 1 to (&amp;amp;yTo - &amp;amp;yFrom)  ;&lt;BR /&gt;
182  if ( n + &amp;amp;yFrom + adj ) = &amp;amp;yThis then adj=0;&lt;BR /&gt;
183  call symputx( 'year' !! put( n,2. -L), (&amp;amp;yFrom + n + adj) ) ;&lt;BR /&gt;
184  end;&lt;BR /&gt;
185  stop ;&lt;BR /&gt;
186  run;&lt;BR /&gt;
187  %put yThis=&amp;amp;Ythis %gen( %eval( &amp;amp;Yto - &amp;amp;yFrom),&lt;BR /&gt;
187! pattern=%nrstr(year###=&amp;amp;year### ) ) ;&lt;BR /&gt;
188  %mend  deliver ;&lt;BR /&gt;
189  %deliver( ythis= 2005)&lt;BR /&gt;
&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.00 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
yThis=2005 year1=2006 year2=2007 year3=2008 year4=2009 year5=2010&lt;BR /&gt;
 &lt;BR /&gt;
190  %deliver( ythis= 2007)&lt;BR /&gt;
&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.00 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
yThis=2007 year1=2005 year2=2006 year3=2008 year4=2009 year5=2010&lt;BR /&gt;
 &lt;BR /&gt;
191  %deliver( ythis= 2010)&lt;BR /&gt;
&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.00 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
yThis=2010 year1=2005 year2=2006 year3=2007 year4=2008 year5=2009&lt;BR /&gt;
 &lt;BR /&gt;
192  %deliver( ythis= 2010, yFrom= 2002, yTo= 2015)&lt;BR /&gt;
&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.00 seconds&lt;BR /&gt;
      cpu time            0.00 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
yThis=2010 year1=2002 year2=2003 year3=2004 year4=2005 year5=2006&lt;BR /&gt;
year6=2007 year7=2008 year8=2009 year9=2011 year10=2012 year11=2013&lt;BR /&gt;
year12=2014 year13=2015[/pre] &lt;BR /&gt;
however, I suspect more complexity might be required. &lt;BR /&gt;
&lt;BR /&gt;
 &lt;BR /&gt;
peterC&lt;BR /&gt;
&lt;BR /&gt;
fixed (hiccup on generating global macro vars)       &lt;BR /&gt;
   Message was edited by: Peter.C</description>
      <pubDate>Tue, 01 Feb 2011 14:07:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67220#M14535</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-02-01T14:07:36Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67221#M14536</link>
      <description>This solution will definitely work(a little tweaking required).&lt;BR /&gt;
&lt;BR /&gt;
It is indeed simple.&lt;BR /&gt;
&lt;BR /&gt;
Thanks Chang.&lt;BR /&gt;
&lt;BR /&gt;
I do have question though.&lt;BR /&gt;
Is it possible to have a data step do the same. The reason being that I will then have to construct %LET stmts like in the 1st post.

Message was edited by: bhavani</description>
      <pubDate>Tue, 01 Feb 2011 17:01:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67221#M14536</guid>
      <dc:creator>bhavani</dc:creator>
      <dc:date>2011-02-01T17:01:37Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67222#M14537</link>
      <description>Ksharp

Message was edited by: Ksharp</description>
      <pubDate>Wed, 23 Feb 2011 02:58:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67222#M14537</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-02-23T02:58:25Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67223#M14538</link>
      <description>@Ksharp: I am not sure if your code is correct. Below shows the differences when start=2005, finish=2012 and the focus year=2007.&lt;BR /&gt;&lt;BR /&gt;
 &lt;BR /&gt;&lt;BR /&gt;
   &lt;SPAN style="font-family:Courier New; font-size:10pt"&gt;year1&amp;nbsp;year2&amp;nbsp;year3&amp;nbsp;year4&amp;nbsp;year5&amp;nbsp;year6&amp;nbsp;year7&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;
   &lt;SPAN style="font-family:Courier New; font-size:10pt"&gt;2006&amp;nbsp;&amp;nbsp;2008&amp;nbsp;&amp;nbsp;2009&amp;nbsp;&amp;nbsp;2010&amp;nbsp;&amp;nbsp;2011&amp;nbsp;&amp;nbsp;2012&amp;nbsp;&amp;nbsp;2005&lt;/SPAN&gt; (chang)&lt;BR /&gt;&lt;BR /&gt;
   &lt;SPAN style="font-family:Courier New; font-size:10pt"&gt;2005&amp;nbsp;&amp;nbsp;2006&amp;nbsp;&amp;nbsp;2008&amp;nbsp;&amp;nbsp;2009&amp;nbsp;&amp;nbsp;2010&amp;nbsp;&amp;nbsp;2011&amp;nbsp;&amp;nbsp;2012&lt;/SPAN&gt; (Ksharp)</description>
      <pubDate>Wed, 23 Feb 2011 15:47:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67223#M14538</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2011-02-23T15:47:08Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67224#M14539</link>
      <description>Sorry.My code is wrong.I did not completely notice what OP want.</description>
      <pubDate>Fri, 25 Feb 2011 05:25:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67224#M14539</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-02-25T05:25:30Z</dc:date>
    </item>
    <item>
      <title>Re: Help on Assigning Values Based on Previous and Future Values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67225#M14540</link>
      <description>OK. Here we go. It is much more complicated than I image.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
 %let start=2005;&lt;BR /&gt;
%let end=2010;&lt;BR /&gt;
%let range=%eval(&amp;amp;end - &amp;amp;start +1);&lt;BR /&gt;
data temp(drop=i);&lt;BR /&gt;
 array year{*} year1-year&amp;amp;range;&lt;BR /&gt;
 do i=1 to dim(year);&lt;BR /&gt;
  year{i}=&amp;amp;start + i;&lt;BR /&gt;
 end;&lt;BR /&gt;
run;&lt;BR /&gt;
data year(drop=count i j year&amp;amp;range);&lt;BR /&gt;
 set temp;&lt;BR /&gt;
 year=&amp;amp;start;&lt;BR /&gt;
 output;  &lt;BR /&gt;
array _year{*} year1-year&amp;amp;range;&lt;BR /&gt;
 count=&amp;amp;range;&lt;BR /&gt;
 do i=1 to &amp;amp;range-1;&lt;BR /&gt;
  _year{count}=year1;&lt;BR /&gt;
  count+(-1);&lt;BR /&gt;
  year1=year;&lt;BR /&gt;
  year+1;&lt;BR /&gt;
  if count ge 2 and count le  &amp;amp;range-2 then do;&lt;BR /&gt;
                                              do j=2 to count;&lt;BR /&gt;
                                               _year{j}=_year{j}+1;&lt;BR /&gt;
                                              end;&lt;BR /&gt;
                                            end;&lt;BR /&gt;
  output;&lt;BR /&gt;
 end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
%let year=2007 ; * the year you want;&lt;BR /&gt;
data _null_;&lt;BR /&gt;
 set year(where=(year=&amp;amp;year));&lt;BR /&gt;
 array _year{*} year1-year&amp;amp;range;&lt;BR /&gt;
 do i=1 to &amp;amp;range-1;&lt;BR /&gt;
  call symputx(cats('year',i),_year{i});&lt;BR /&gt;
 end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
%put _user_;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp

Message was edited by: Ksharp</description>
      <pubDate>Fri, 25 Feb 2011 08:31:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-on-Assigning-Values-Based-on-Previous-and-Future-Values/m-p/67225#M14540</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-02-25T08:31:11Z</dc:date>
    </item>
  </channel>
</rss>

