anchor.diff:  code_change(_, State, _) ->
   	{ok, State}.
   init(_) ->
  -	lager:info("starting geoip..."),
  -	filelib:ensure_dir(butil:project_rootpath()++"/priv/geoip/"),
  +	% filelib:ensure_dir(butil:project_rootpath()++"/priv/geoip/"),
   	C = ets:new(countries,[set,private,{keypos,#ci.country}]),
   	% [ets:insert(C,{Ctry}) || Ctry <- tuple_to_list(?COUNTRIES)],
   	% [ets:insert(C,{{langs, Ctry},L}) || {Ctry,L} <- ?LANGUAGES],
  
positive.code: 			{_,Csv} = butil:findtrue(fun({Name,_B}) -> 
  										string:str(Name,".csv") > 0
  									end,L),
  			file:write_file(butil:project_rootpath() ++ "/priv/geoip/geoip.csv",Csv);
  		_ ->
  			ok
  
negative.code: 	ets:insert(C,consci(asia(), [])),
  	ets:insert(C,consci(america(), [])),
  	Loclangs = dict:from_list(loclangs()),
  	case filelib:is_dir(butil:project_rootpath()++"/priv/geoip/") of
  		true ->
  			self() ! {check_file,0};
  		_ ->
  			ok
  	end,
  	{ok, #gip{countries = C,loclangs = Loclangs}}.
  
  check_update_csv() ->
  