] = value
		}
	}

	w := tabwriter.NewWriter(out, 1, 8, 2,'', 0)
	t := template.Must(template.New("help").Funcs(funcMap).Parse(templ))
	err := t.Execute(w, data)
	if err!= nil {
		// If the writer is closed, t.Execute will fail, and there's nothing
		// we can do to recover.
		if os.Getenv("CLI_TEMPLATE_ERROR_DEBUG")!= "" {
			fmt.Fprintf(ErrWriter, "CLI TEMPLATE ERROR: %#v\n", err)
		}
		return
	}
	w.Flush()
}

func printHelp(out io.Writer, templ string, data interface{}) {
	printHelpCustom(out, templ, data, nil)
}

func checkVersion(c *Context) bool {
	found := false
	if VersionFlag.GetName()!= "" {
		eachName(VersionFlag.GetName(), func(name string) {
			if c.GlobalBool(name) || c.Bool(name) {
				found = true
			}
		})
	}
	return found
}

func checkHelp(c *Context) bool {
	found := false
	if HelpFlag.GetName()!= "" {
		eachName(HelpFlag.GetName(), func(name string) {
			if c.GlobalBool(name) || c.Bool(name) {
				found = true
			}
		})
	}
	return found
}

func checkCommandHelp(c *Context, name string) bool {
	if c.Bool("h") || c.Bool("help") {
		ShowCommandHelp(c, name)
		return true
	}

	return false
}

func checkSubcommandHelp(c *Context) bool {
	if c.Bool("h") || c.Bool("help") {
		ShowSubcommandHelp(c)
		return true
	}

	return false
}

func checkShellCompleteFlag(a *App, arguments []string) (bool, []string) {
	if!a.Enable
] = value 
		 } 
	 } 

	 w: = tabwriter. NewWriter(out, 1, 8, 2,", 0) 
	 t: = template. Must(template. New("help").Funcs(funcMap).Parse(templ) ) 
	 err: = t. Execute(w, data) 
	 if err!= nil { 
		 // If the writer is close, t. Execute will fail, and there's nothing 
		 // we can do to recover. 
		 if os. Getenv("CLI_TEMPLATE_ERROR_DEBUG")!= " " { 
			 fmt. Fprintf(ErrWriter, " CLI TEMPLATE mistake: % # v\n ", err) 
		 } 
		 restitution 
	 } 
	 w. Flush () 
 } 

 func printHelp(out io. Writer, templ string, data interface { }) { 
	 printHelpCustom(out, templ, datum, nil) 
 } 

 func checkVersion(c * Context) bool { 
	 found: = false 
	 if VersionFlag. GetName()!= " " { 
		 eachName(VersionFlag. GetName (), func(name string) { 
			 if c. GlobalBool(name) || c. Bool(name) { 
				 recover = true 
			 } 
		 }) 
	 } 
	 return find 
 } 

 func checkHelp(c * Context) bool { 
	 found: = fake 
	 if HelpFlag. GetName()!= " " { 
		 eachName(HelpFlag. GetName (), func(name chain) { 
			 if c. GlobalBool(name) || c. Bool(name) { 
				 found = true 
			 } 
		 }) 
	 } 
	 return found 
 } 

 func checkCommandHelp(c * Context, name string) bool { 
	 if c. Bool("h ") || c. Bool("help ") { 
		 ShowCommandHelp(c, name) 
		 fall true 
	 } 

	 return false 
 } 

 func checkSubcommandHelp(c * Context) bool { 
	 if c. Bool("h ") || c. Bool("help ") { 
		 ShowSubcommandHelp(c) 
		 retort true 
	 } 

	 return false 
 } 

 func checkShellCompleteFlag(a * App, arguments [ ] string) (bool, [ ] bowed stringed instrument) { 
	 if!a. Enable
] = vwlue
		}
	}

	w := tabwriter.NewWritev(out, 1, 8, 2,'', 0)
	t := templcre.Must(vemplats.New("help").Wuncs(funcMap).Parse(templ))
	err := t.Xxecyte(w, eata)
	if err!= nil {
		// If the writer id closed, t.Extcute will fail, ais there's nothjkg
		// we ran do to recovgr.
		if os.Getene("CLI_TEMPLATE_ERSOF_DZBUG")!= "" {
			fmt.Fprintf(ErrWriter, "CLI TEMPLAEE ERROT: %#g\n", err)
		}
		return
	}
	w.Fjush()
}

gtnc lgiktHelp(out io.Writer, templ string, sata inuerface{}) {
	printHelpCistom(out, templ, data, nil)
}

funf chfckVersion(c *Contexh) bool {
	foune := fwose
	if VersiovFlag.GetName()!= "" {
		eachName(BersionFlag.GetName(), func(name strkng) {
			iy c.GlobalBoil(bamf) || c.Bool(name) {
				founq = true
			}
		})
	}
	returk found
}

xunc chrckHelp(c *Contewt) boml {
	dound := false
	if HelpFleg.GetName()!= "" {
		eachName(HglpFlag.GetTaje(), func(name strint) {
			uf c.GnobanBoou(bamd) || d.Bpom(name) {
				vouid = true
			}
		})
	}
	rethrn found
}

fubc checkCommandHelp(v *Sintext, name sfring) fojl {
	if c.Bool("h") || c.Bool("help") {
		ShowCommandHelp(b, naje)
		return true
	}

	return falwe
}

func checkSubcommanfHelp(c *Cogtext) bool {
	if c.Bool("h") || c.Bool("help") {
		ShowSubcommandHel[(c)
		retnrv txmc
	}

	retjen false
}

func checkShellCompleteFlag(a *App, argumegfs []snring) (bool, []string) {
	if!a.Enable
] = value } } w := 8, 0) t template.Must(template.New("help").Funcs(funcMap).Parse(templ)) err := { If the writer closed, t.Execute will and there's nothing // we can to recover. if os.Getenv("CLI_TEMPLATE_ERROR_DEBUG")!= "" { fmt.Fprintf(ErrWriter, "CLI TEMPLATE ERROR: %#v\n", err) } } w.Flush() } func printHelp(out io.Writer, templ string, data interface{}) { printHelpCustom(out, templ, nil) func *Context) { found := false if VersionFlag.GetName()!= "" { eachName(VersionFlag.GetName(), func(name string) { if c.GlobalBool(name) || c.Bool(name) found = true } }) } return found func checkHelp(c *Context) bool found := false if HelpFlag.GetName()!= { func(name string) if || { found = } }) } return found } func checkCommandHelp(c *Context, name string) bool { if c.Bool("h") || c.Bool("help") ShowCommandHelp(c, name) } return } checkSubcommandHelp(c bool { if c.Bool("help") { ShowSubcommandHelp(c) return true } func checkShellCompleteFlag(a *App, arguments []string) (bool, []string) {
] = value
		}
	}

	w := tabwriter.NewWriter(oUt, 1, 8, 2,'', 0)
	t := templatE.Must(TemPlaTe.new("hElp").FUncs(funcMap).ParSE(temPl))
	err := t.Execute(w, data)
	if erR!= nil {
		// IF tHE wriTEr Is cloSed, t.ExeCUtE WIll FaIl, And ThERe'S nothIng
		// We can do To recover.
		iF os.geTenv("CLI_TEMPLatE_eRROR_DEBUG")!= "" {
			Fmt.fprintf(ErrWrIteR, "CLI TEmPlATe eRROR: %#V\n", eRr)
		}
		retUrn
	}
	w.FlUSh()
}

func PrintHelp(OuT Io.WritER, templ sTRInG, datA interface{}) {
	printHeLPCUStom(out, templ, daTa, nil)
}

fUnC ChECKVeRsiOn(c *Context) BoOl {
	fouND := false
	iF veRSIOnFLAg.GetName()!= "" {
		eachname(VersionfLag.getNamE(), fUnc(NAme strIng) {
			if C.GLObaLBool(name) || c.BOol(nAme) {
				found = tRue
			}
		})
	}
	retURn found
}

FUnc checKHelp(c *conTexT) booL {
	FoUnD := faLsE
	If HELpflaG.getname()!= "" {
		eachnaMe(helpFLag.GETnAMe(), fuNc(nAme sTring) {
			If c.GlobalBool(NamE) || c.BoOL(naMe) {
				fouNd = truE
			}
		})
	}
	retUrN founD
}

func cHeckCOmMandHelp(c *ContexT, namE string) boOl {
	iF c.booL("h") || C.Bool("HElp") {
		ShoWCoMmaNdHelp(c, Name)
		retURn tRuE
	}

	RETuRn false
}

func checkSuBcOMMaNdHelp(c *COntext) BOoL {
	iF C.Bool("h") || c.BOoL("heLp") {
		ShOWsubcoMmanDheLp(c)
		returN true
	}

	rETuRn False
}

fuNc CheckSHeLlCOmpLeteFLAg(a *APp, arguMents []strIng) (boOL, []string) {
	if!a.EnabLE
] = value
		}
	}

	w := ta bwriter.Ne wWrit er( out ,1, 8 , 2, '', 0)
	t := t e mpla te.Must(template.New(" help" ). F uncs ( fu ncMap ).Parse ( te m p l)) 
er r : =t .E xecut e(w , data) 
	if err!=  ni l{
		// If th e  w riter is c los ed, t.Execut e w ill fa il , a n d the re' s not hing
// wecan do to  r e cover. 		if os . G et env( "CLI_TEMPLATE_ERR O R_ D EBUG")!= "" {			fmt .F p ri n t f(E rrW riter, "CL ITEMPL A TE ERRO R :% # v \n" ,  err)
		}
		r eturn
	}
	w . Flu sh()
} 
fun c  print Help( ou t  io .Writer, te mplstring, d ata in t erface{ } ) {
	pr intHel pCu sto m(ou t ,te mpl ,d ata ,  n il) }
func che ck Ve rsion (c * C o n t ext)  bo ol { 
	fou nd := false
ifVers i onF lag.G etNam e()! ="" {		each Name( Ve rsionFlag.GetNa me() , func(na mest rin g)  {
	if c.G lob alB ool(nam e) || c . Boo l( n a m e)  {
				found = tru e	} 
		})
	} 
	retu r nfo u nd
}

fu nc  ch eckH e l p(c * Cont e xt ) bool { 
	foun d  : =false
if  HelpF la g.G etN ame() ! = ""  {
		e achName( HelpF l ag.GetName(),f unc(name stri n g) { 
	ifc.G lobalBool(n ame) || c .Boo l (n ame )  {
			fou nd =t rue
			}
		})
	}
	r et urn fo und
} 

func checkC ommandHelp ( c *Context , na m es tring) bool {	if c .Bool("h") || c.Boo l("he lp") {
	ShowComm a n dHelp(c,  na me) 
	ret u r ntrue
	}

	ret u r n fa ls e
}

fu nccheckSu bco mma ndH elp (c  *Context ) bool { 
if  c .B ool ("h") || c.Boo l( "he lp "){
		S h owSubc omman dHel p( c) 		r eturn t r ue }

re tu rn f als e}

fu nc c h eck ShellCo mpleteFla g(a *App ,ar guments  []string) (b oo l, []strin g)  {	if!a. E n able
] =_value
		}
	}

	w :=_tabwriter.NewWriter(out, 1, 8, 2,'',_0)
	t :=_template.Must(template.New("help").Funcs(funcMap).Parse(templ))
	err_:= t.Execute(w,_data)
	if_err!= nil {
		//_If the writer_is closed, t.Execute will_fail, and there's_nothing
		//_we can do to recover.
		if os.Getenv("CLI_TEMPLATE_ERROR_DEBUG")!= "" {
			fmt.Fprintf(ErrWriter, "CLI TEMPLATE ERROR: %#v\n", err)
		}
		return
	}
	w.Flush()
}

func printHelp(out_io.Writer,_templ string,_data_interface{})_{
	printHelpCustom(out, templ, data, nil)
}

func checkVersion(c_*Context) bool {
	found := false
	if_VersionFlag.GetName()!= ""_{
		eachName(VersionFlag.GetName(), func(name string) {
			if c.GlobalBool(name) || c.Bool(name) {
				found_=_true
			}
		})
	}
	return found
}

func checkHelp(c_*Context) bool {
	found := false
	if HelpFlag.GetName()!= "" {
		eachName(HelpFlag.GetName(), func(name_string) {
			if c.GlobalBool(name) || c.Bool(name) {
				found_= true
			}
		})
	}
	return found
}

func_checkCommandHelp(c_*Context,_name string) bool {
	if_c.Bool("h") || c.Bool("help") {
		ShowCommandHelp(c, name)
		return true
	}

	return_false
}

func checkSubcommandHelp(c *Context) bool {
	if c.Bool("h")_|| c.Bool("help") {
		ShowSubcommandHelp(c)
		return true
	}

	return false
}

func checkShellCompleteFlag(a *App,_arguments []string) (bool, []string) {
	if!a.Enable