/*

This port was made from the FORTRAN code into the NEURON enviroment based on 

	Traub RD, Buhl EH, Gloveli T, Whittington MA. Fast Rhythmic Bursting Can Be Induced in Layer 2/3 Cortical Neurons by Enhancing Persistent Na(+) Conductance or by Blocking BK Channels.J Neurophysiol. 2003 Feb;89(2):909-21.

This port was made by Roger D Traub and Maciej Lazarewicz (mlazarew@seas.upenn.edu)

Thanks to Ashlen P Reid for help with porting a morphology of the cell.

*/


begintemplate pyr3

	public comp, Level1, Level2, Level3,  Level4, Level5, Level6, Level7, Level8, Level9,  Level10, Level11, Level12, Dendrites, Basal, Oblique, Prox, Dist, SD, Soma, inj1_, inj2_

	create  comp[75]
	create  aux10to13[4], aux69, aux38, aux2to9[8]

	objref all, Dist, Oblique, Basal, Soma, Axon, Dendrites, SD, Prox
	objref Aux
	objref Level0, Level1, Level2, Level3, Level4, Level5, Level6, Level7, Level8, Level9, Level10, Level11, Level12
	objref inj1_, inj2_

	proc init() {

		titlePrint()

		create  comp[75]
		create  aux10to13[4], aux69, aux38, aux2to9[8]

		comp[0] delete_section()		

		objref all, Dist, Oblique, Basal, Soma, Axon, Dendrites, SD, Prox
		objref  Aux
		objref Level0, Level1, Level2, Level3, Level4, Level5, Level6, Level7, Level8, Level9, Level10, Level11, Level12
		objref inj1_, inj2_

		shape()

		geom()
	
		if( name_declared("method") != 5 ) method = 1

		if( method == 1 ) spinecorr()

		setupfig( $1 )

		set_active()

		if( method == 2 ) spinecorr()

	}

	proc titlePrint() {

		print ""
		print "-----"
		print ""
		print "Layer 2/3 Cortical Neurons Model based on Traub RD (2003)"
		print ""
		print "-----"
	}

	// 21 - figure 2, current injection 1.5 nA
	// 22 - figure 2, current injection 2.5 nA
	// 41 - figure 4, current injection 2.5 nA
	// 42 - figure 4, current injection 1.5 nA
	// 43 - figure 4, current injection 1.1 nA
	// 44 - figure 4, current injection 0.6 nA
	// 51 - figure 5, current injection 0.75 nA
	// 52 - figure 5, current injection 1.3 nA
	// 61 - figure 6, current injection 0.6 nA
	// 62 - figure 6, current injection 1.3 nA
	// 71 - figure 7, uper
	// 72 - figure 7, middle
	// 73 - figure 7, bottom

	proc setupfig() {

		fig = $1
		if ( fig == -1 ) comp[1] {
			dnap   = 0.0   
			dkc    = 1.6	
		}

		if ( fig == -2 ) comp[1] {
			dnap    = 1.25  
			dkc     = 1.0
		}

		if ( fig == 21 || fig == 22 ) comp[43] {
			g_pas     = g_pas + 2.5/area(0.5)   // in the paper is 20 nS, here is 25 nS
			inj1_     = new IClamp(0.5)
			inj1_.dur = 150
			inj1_.del = 0
			inj1_.amp = -0.15	

			inj2_     = new IClamp(0.5)
			inj2_.dur = 800
			inj2_.del = 150

			if( fig == 21 )	inj2_.amp = 1.5
			if( fig == 22 )	inj2_.amp = 2.5

			dnap   = 0.0
			dkc    = 1.6
		}


		if ( fig == 41 ||  fig == 42 || fig == 43 || fig == 44 ) comp[1] {
			inj1_     = new IClamp(0.5)
			inj1_.dur = 150
			inj1_.del = 0
			inj1_.amp = -0.15	

			inj2_     = new IClamp(0.5)
			inj2_.dur = 250
			inj2_.del = 150

			if( fig == 41 )	inj2_.amp = 2.5
			if( fig == 42 )	inj2_.amp = 1.5
			if( fig == 43 )	inj2_.amp = 1.1
			if( fig == 44 )	inj2_.amp = 0.6

			dnap   = 0.0
			dkc    = 1.3
		}

		if ( fig == 51 || fig == 52 ) comp[1] {
			inj1_     = new IClamp(0.5)
			inj1_.dur = 150
			inj1_.del = 0
			inj1_.amp = -0.15	

			inj2_     = new IClamp(0.5)
			inj2_.dur = 1000
			inj2_.del = 150

			if( fig == 51 )	inj2_.amp = 0.75
			if( fig == 52 )	inj2_.amp = 1.3

			dnap = 0
			dkc  = 1.6
		}

		if ( fig == 61 || fig == 62 ) comp[1] {
			inj1_     = new IClamp(0.5)
			inj1_.dur = 150
			inj1_.del = 0
			inj1_.amp = -0.15	

			inj2_     = new IClamp(0.5)
			inj2_.dur = 2500
			inj2_.del = 150

			if( fig == 61 )	inj2_.amp = 0.6
			if( fig == 62 )	inj2_.amp = 1.3

			dnap   = 0.7
			dkc    = 1.6
		}

		if ( fig == 71 || fig == 72 || fig == 73 ) comp[1] {
			inj1_     = new IClamp(0.5)
			inj1_.dur = 150
			inj1_.del = 0
			inj1_.amp = -0.15	

			inj2_     = new IClamp(0.5)
			inj2_.dur = 2500
			inj2_.del = 150
			inj2_.amp = 0.7

			if( fig == 71 )	dnap = 0
			if( fig == 72 )	dnap = 0.7
			if( fig == 73 )	dnap = 1.0

			dkc    = 1.6
		}
	}

	proc spinecorr() {

		forsec Dendrites {
			if (method == 1) {
				L  = L * 2
				Ra = Ra / 2
			}

			if (method == 2) {
				g_pas	  = g_pas     * 2 
				cm   	  = cm        * 2
				phi_cad   = phi_cad   / 2

				gbar_naf  = gbar_naf  * 2
				gbar_nap  = gbar_nap  * 2
				gbar_kdr  = gbar_kdr  * 2
				gbar_ka   = gbar_ka   * 2
				gbar_kc   = gbar_kc   * 2
				gbar_kahp = gbar_kahp * 2
				gbar_k2   = gbar_k2   * 2
				gbar_km   = gbar_km   * 2
				gbar_cat  = gbar_cat  * 2
				gbar_cal  = gbar_cal  * 2
				gbar_ar   = gbar_ar   * 2
			}
		}

		print "Spine correction with method: ", method
	}

	proc set_active() {

		forsec Dendrites {
			insert cad
			insert naf 
			insert nap 
			insert kdr 
			insert ka 
			insert kc
			insert kahp 
			insert k2 
			insert km 
			insert cat 
			insert cal 
			insert ar
		}

		forsec Soma {
			insert cad
			insert naf 
			insert nap 
			insert kdr 
			insert ka 
			insert kc
			insert kahp 
			insert k2 
			insert km 
			insert cat 
			insert cal 
			insert ar
		}

		forsec Axon {
			insert naf 
			insert kdr 
			insert ka 
			insert k2 

			gbar_naf  = 400e-3 
			gbar_kdr  = 400e-3
			gbar_ka   = 2e-3
			gbar_k2   = 0.1e-3
		}
		
		comp[1] ceiling_cad = 1000

		forsec Soma {
			phi_cad   = 52 / 2e-3
			beta_cad  = 1 / 100	// in the paper beta = 50 [ms]

			gbar_naf  = 150e-3 * 1.25
			gbar_nap  = dnap * 0.0032 * gbar_naf 
			gbar_kdr  = 125e-3
			gbar_ka   = 30e-3
			gbar_kc   = dkc * 7.5e-3 // in tha paper 'dkc * 12e-3'
			gbar_kahp = 0.1e-3
			gbar_k2   = 0.1e-3
			gbar_km   = 2.5 * 1.5e-3 * 2
			gbar_cat  = 0.1e-3
			gbar_cal  = 0.5e-3
			gbar_ar   = 0.25e-3
		}

		forsec Dendrites {
			phi_cad   = 52 / 2e-3
			beta_cad  = 1 / 20

			gbar_naf  = 6.25e-3 
			gbar_nap  = dnap * 0.0032 * gbar_naf 
			gbar_kdr  = 0
			gbar_ka   = 2e-3
			gbar_kc   = 0
			gbar_kahp = 0.1e-3
			gbar_k2   = 0.1e-3
			gbar_km   = 2.5 * 1.5e-3 * 2
			gbar_cat  = 0.1e-3
			gbar_cal  = 0.5e-3
			gbar_ar   = 0.25e-3
		}

		forsec Prox {	
			gbar_naf  = 75e-3 * 1.25
			gbar_nap  = dnap * 0.0032 * gbar_naf 
			gbar_kdr  = 75e-3 * 1.25
			gbar_kc   = dkc * 7.5e-3 // in tha paper 'dkc * 12e-3'
		}

		forsec Dist {
			gbar_cal  = 3e-3
		}

		comp[38] {
			gbar_ka   = 30e-3
			gbar_naf  = 125e-3 
			gbar_nap  = dnap * 0.0032 * gbar_naf // in the FORTRAN code 0.004
			gbar_kdr  = 125e-3       // in tha paper '75e-3 * 1.25'
			gbar_kc   = dkc * 7.5e-3 // in tha paper 'dkc * 12e-3'
		}

		forsec Axon {
			ena = 50
			ek  = -95
		}

		forsec Dendrites {	
			ena = 50
			ek  = -95
			eca = 125
		}

		forsec Soma {	
			ena = 50
			ek  = -95
			eca = 125
		}

	}

	proc geom() {

		//Apical

		for i=61,68 connect comp[i](0),      comp[i-8](1)
		for i=53,60 connect comp[i](0),      comp[i-8](1)
		for i=49,52 connect comp[i](0),      comp[44](1)
		for i=45,48 connect comp[i](0),      comp[43](1)
		for i=43,44 connect comp[i](0),      comp[i-2](1)
		for i=41,42 connect comp[i](0),      comp[40](1)

		connect             comp[40](0),     comp[39](1)
		connect 	    comp[39](0),     comp[38](1)
//		connect 	    comp[38](0),     comp[1](1)
		connect 	    comp[38](0),     aux38(1)
		connect		    aux38(0),        comp[1](0.5)

		// Oblique apical

		for i=0,3 connect   aux10to13[i](0), comp[38](0.5)
		for i=0,3 connect   comp[i+10](0),   aux10to13[i](1)
//		for i=0,3 connect   comp[i+10](0),   comp[38](0.5)
		for i=0,3 connect   comp[i+22](0),   comp[i+10](1)
		for i=0,3 connect   comp[i+34](0),   comp[i+22](1)

		// Basal

		for i=0,7 connect   aux2to9[i](0),   comp[1](0.5)
		for i=0,7 connect   comp[i+2](0),    aux2to9[i](1)
//		for i=0,7 connect   comp[i+2](0),    comp[1](0)
		for i=0,7 connect   comp[i+14](0),   comp[i+2](1)
		for i=0,7 connect   comp[i+26](0),   comp[i+14](1)

		// Axon
		connect             aux69(0),        comp[1](0.5)
		connect             comp[69](0),     aux69(1)
//		connect             comp[69](0),     comp[1](0.5)
		connect             comp[70](0),     comp[69](1)
		for i=0,1 connect   comp[71+i*2](0), comp[70](1)
		for i=0,1 connect   comp[72+i*2](0), comp[71+i*2](1)

		Level0 = new SectionList()
		 for i=69,74 comp[i] Level0.append()    

		Level1 = new SectionList()
		comp[1] Level1.append()    

		Level2 = new SectionList()
		 for i=2,13 comp[i] Level2.append()    

		Level3 = new SectionList()
		 for i=14,25 comp[i] Level3.append()

		Level4 = new SectionList()
		 for i=26,37 comp[i] Level4.append()

		Level5 = new SectionList()
		 comp[38] Level5.append()

		Level6 = new SectionList()
		 comp[39] Level6.append()

		Level7 = new SectionList()
		 comp[40] Level7.append()

		Level8 = new SectionList()
		 for i=41,42 comp[i] Level8.append()

		Level9 = new SectionList()
		 for i=43,44 comp[i] Level9.append()

		Level10 = new SectionList()
		 for i=45,52 comp[i] Level10.append()

		Level11 = new SectionList()
		 for i=53,60 comp[i] Level11.append()

		Level12 = new SectionList()
		 for i=60,68 comp[i] Level12.append()

		all = new SectionList()
		 for i=1,74 comp[i] all.append()

		Axon = new SectionList()
		 for i=69,74 comp[i] Axon.append()

		Dendrites = new SectionList()
		 for i=2,68 comp[i] Dendrites.append()

		SD = new SectionList()
		 for i=1,68 comp[i] SD.append()

		Dist = new SectionList()
		 forsec Level10 Dist.append()
		 forsec Level11 Dist.append()
		 forsec Level12 Dist.append()

		Basal = new SectionList()
		 for i=2,9 comp[i] Basal.append()
		 for i=14,21 comp[i] Basal.append()
		 for i=26,33 comp[i] Basal.append()

		Oblique = new SectionList()
		 for i=10,13 comp[i] Oblique.append()
		 for i=22,25 comp[i] Oblique.append()
		 for i=34,37 comp[i] Oblique.append()

		Prox = new SectionList()
		 forsec Level2 Prox.append()
		 forsec Level6 Prox.append()

		Soma = new SectionList()
		 comp[1] Soma.append()

		Aux = new SectionList()
		 for i=0,3 aux10to13[i] Aux.append()
		 aux69 Aux.append()
		 aux38 Aux.append()
		 for i=0,7 aux2to9[i] Aux.append()

		forsec Dist 		{  		diam = 1.6  	}
		forsec Oblique 		{  		diam = 1  	}
		forsec Basal 		{  		diam = 1  	}
		forsec Soma 		{  L = 15  	diam = 16  	}
		forsec Dendrites 	{  L = 50  			}
		forsec Aux 	 	{  L = 15 / 2  	diam = 16 	}
		for i=0,3 aux10to13[i]	{  L = 50 / 2  	diam = 8 	}

		comp[38]    		{ 		diam = 8  	}
		comp[39] 		{  		diam = 8 * 0.9 	}
		comp[40] 		{  		diam = 8 * 0.8 	}
		forsec Level8 		{  		diam = 4  	}
		forsec Level9 		{  		diam = 4  	}

		comp[69]    		{  L = 25  	diam = 1.8 	}
		comp[70]    		{  L = 50  	diam = 1.4 	}
		for i=71,74 comp[i] 	{  L = 50  	diam = 1  	}

		forsec Aux {
			Ra = 250
			cm = 0
		}	

		forsec Soma {
		  Ra = 250
		  cm = 0.9
		  insert pas
		    g_pas = 2e-05
		    e_pas = -70
		}

		forsec Axon {
		  Ra = 100
		  cm = 0.9
		  insert pas
		    g_pas = 0.001
		    e_pas = -70
		}

		forsec Dendrites {
		  Ra = 250
		  cm = 0.9
		  insert pas
		    g_pas = 2e-05
		    e_pas = -70
		}

		access comp[1]
	}

	proc shape() {

		aux10to13[0] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux10to13[1] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux10to13[2] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux10to13[3] 	{pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		aux69		{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux38		{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[0]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[1]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[2]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[3]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[4]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[5]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[6]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		aux2to9[7]	{pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}

		comp[1] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-134, -14, 0, 1)}
		comp[38] {pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-104, -14, 0, 1)}
		comp[39] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-74, -14, 0, 1)}
		comp[40] {pt3dclear() pt3dadd(-74, -14, 0, 1) pt3dadd(-44, -14, 0, 1)}

		comp[41] {pt3dclear() pt3dadd(-44, -14, 0, 1) pt3dadd(-14, 30, 0, 1)}
		comp[43] {pt3dclear() pt3dadd(-14, 30, 0, 1) pt3dadd(0, 45, 0, 1)}

		comp[45] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 75, 0, 1)}
		comp[46] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 60, 0, 1)}
		comp[47] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 30, 0, 1)}
		comp[48] {pt3dclear() pt3dadd(0, 45, 0, 1) pt3dadd(45, 15, 0, 1)}

		comp[53] {pt3dclear() pt3dadd(45, 75, 0, 1) pt3dadd(75, 75, 0, 1)}
		comp[54] {pt3dclear() pt3dadd(45, 60, 0, 1) pt3dadd(75, 60, 0, 1)}
		comp[55] {pt3dclear() pt3dadd(45, 30, 0, 1) pt3dadd(75, 30, 0, 1)}
		comp[56] {pt3dclear() pt3dadd(45, 15, 0, 1) pt3dadd(75, 15, 0, 1)}

		comp[61] {pt3dclear() pt3dadd(75, 75, 0, 1) pt3dadd(90, 90, 0, 1)}
		comp[62] {pt3dclear() pt3dadd(75, 60, 0, 1) pt3dadd(90, 75, 0, 1)}
		comp[63] {pt3dclear() pt3dadd(75, 30, 0, 1) pt3dadd(90, 15, 0, 1)}
		comp[64] {pt3dclear() pt3dadd(75, 15, 0, 1) pt3dadd(90, 0, 0, 1)}

		comp[42] {pt3dclear() pt3dadd(-44, -14, 0, 1) pt3dadd(-14, -59, 0, 1)}
		comp[44] {pt3dclear() pt3dadd(-14, -59, 0, 1) pt3dadd(0, -74, 0, 1)}

		comp[49] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -44, 0, 1)}
		comp[50] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -59, 0, 1)}
		comp[51] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -89, 0, 1)}
		comp[52] {pt3dclear() pt3dadd(0, -74, 0, 1) pt3dadd(45, -104, 0, 1)}

		comp[57] {pt3dclear() pt3dadd(45, -44, 0, 1) pt3dadd(75, -44, 0, 1)}
		comp[58] {pt3dclear() pt3dadd(45, -59, 0, 1) pt3dadd(75, -59, 0, 1)}
		comp[59] {pt3dclear() pt3dadd(45, -89, 0, 1) pt3dadd(75, -89, 0, 1)}
		comp[60] {pt3dclear() pt3dadd(45, -104, 0, 1) pt3dadd(75, -104, 0, 1)}

		comp[65] {pt3dclear() pt3dadd(75, -44, 0, 1) pt3dadd(90, -29, 0, 1)}
		comp[66] {pt3dclear() pt3dadd(75, -59, 0, 1) pt3dadd(90, -44, 0, 1)}
		comp[67] {pt3dclear() pt3dadd(75, -89, 0, 1) pt3dadd(90, -104, 0, 1)}
		comp[68] {pt3dclear() pt3dadd(75, -104, 0, 1) pt3dadd(90, -119, 0, 1)}

		comp[10] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-119, 0, 0, 1)}
		comp[22] {pt3dclear() pt3dadd(-119, 0, 0, 1) pt3dadd(-119, 30, 0, 1)}
		comp[34] {pt3dclear() pt3dadd(-119, 30, 0, 1) pt3dadd(-119, 60, 0, 1)}
		comp[11] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-89, 0, 0, 1)}
		comp[23] {pt3dclear() pt3dadd(-89, 0, 0, 1) pt3dadd(-89, 30, 0, 1)}
		comp[35] {pt3dclear() pt3dadd(-89, 30, 0, 1) pt3dadd(-89, 60, 0, 1)}
		comp[12] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-119, -29, 0, 1)}
		comp[24] {pt3dclear() pt3dadd(-119, -29, 0, 1) pt3dadd(-119, -59, 0, 1)}
		comp[36] {pt3dclear() pt3dadd(-119, -59, 0, 1) pt3dadd(-119, -89, 0, 1)}
		comp[13] {pt3dclear() pt3dadd(-104, -14, 0, 1) pt3dadd(-89, -29, 0, 1)}
		comp[25] {pt3dclear() pt3dadd(-89, -29, 0, 1) pt3dadd(-89, -59, 0, 1)}
		comp[37] {pt3dclear() pt3dadd(-89, -59, 0, 1) pt3dadd(-89, -89, 0, 1)}
		comp[2] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-164, 30, 0, 1)}
		comp[14] {pt3dclear() pt3dadd(-164, 30, 0, 1) pt3dadd(-179, 45, 0, 1)}
		comp[26] {pt3dclear() pt3dadd(-179, 45, 0, 1) pt3dadd(-194, 60, 0, 1)}
		comp[3] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-179, 30, 0, 1)}
		comp[15] {pt3dclear() pt3dadd(-179, 30, 0, 1) pt3dadd(-194, 45, 0, 1)}
		comp[27] {pt3dclear() pt3dadd(-194, 45, 0, 1) pt3dadd(-209, 60, 0, 1)}
		comp[4] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, 15, 0, 1)}
		comp[16] {pt3dclear() pt3dadd(-194, 15, 0, 1) pt3dadd(-209, 30, 0, 1)}
		comp[28] {pt3dclear() pt3dadd(-209, 30, 0, 1) pt3dadd(-224, 45, 0, 1)}
		comp[5] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, 0, 0, 1)}
		comp[17] {pt3dclear() pt3dadd(-194, 0, 0, 1) pt3dadd(-209, 15, 0, 1)}
		comp[29] {pt3dclear() pt3dadd(-209, 15, 0, 1) pt3dadd(-224, 30, 0, 1)}
		comp[6] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, -29, 0, 1)}
		comp[18] {pt3dclear() pt3dadd(-194, -29, 0, 1) pt3dadd(-209, -44, 0, 1)}
		comp[30] {pt3dclear() pt3dadd(-209, -44, 0, 1) pt3dadd(-224, -59, 0, 1)}
		comp[7] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-164, -59, 0, 1)}
		comp[19] {pt3dclear() pt3dadd(-164, -59, 0, 1) pt3dadd(-179, -74, 0, 1)}
		comp[31] {pt3dclear() pt3dadd(-179, -74, 0, 1) pt3dadd(-194, -89, 0, 1)}
		comp[8] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-194, -44, 0, 1)}
		comp[20] {pt3dclear() pt3dadd(-194, -44, 0, 1) pt3dadd(-209, -59, 0, 1)}
		comp[32] {pt3dclear() pt3dadd(-209, -59, 0, 1) pt3dadd(-224, -74, 0, 1)}
		comp[9] {pt3dclear() pt3dadd(-149, -14, 0, 1) pt3dadd(-179, -59, 0, 1)}
		comp[21] {pt3dclear() pt3dadd(-179, -59, 0, 1) pt3dadd(-194, -74, 0, 1)}
		comp[33] {pt3dclear() pt3dadd(-194, -74, 0, 1) pt3dadd(-209, -89, 0, 1)}
		comp[69] {pt3dclear() pt3dadd(-134, -14, 0, 1) pt3dadd(-134, -44, 0, 1)}
		comp[70] {pt3dclear() pt3dadd(-134, -44, 0, 1) pt3dadd(-134, -74, 0, 1)}
		comp[71] {pt3dclear() pt3dadd(-134, -74, 0, 1) pt3dadd(-149, -89, 0, 1)}
		comp[72] {pt3dclear() pt3dadd(-149, -89, 0, 1) pt3dadd(-149, -129, 0, 1)}
		comp[73] {pt3dclear() pt3dadd(-134, -74, 0, 1) pt3dadd(-134, -104, 0, 1)}
		comp[74] {pt3dclear() pt3dadd(-134, -104, 0, 1) pt3dadd(-134, -134, 0, 1)}
	}

endtemplate pyr3