典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典典
↑返回顶部↑