\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\newcommand{\subsubsubsection}[1]{\par\noindent{\em #1}\hspace{1em}}
\author{William A. Stein\footnote{University of California, Berkeley, U.S.A.,
{\tt was@math.berkeley.edu}}}
\font\cyr=wncyr10 scaled \magstep 1
\newcommand{\fpqf}{fpqf}
\newcommand{\ccdot}{\!\cdot\!}
\newcommand{\abvar}[1]{\mbox{\rm #1}}
\newcommand{\twopii}{2\pi{}i{}}
\newcommand{\Adual}{A^{\vee}}
\newcommand{\Bdual}{B^{\vee}}
\newcommand{\Jdual}{J^{\vee}}
\newcommand{\sM}{\boldsymbol{\mathcal{M}}}
\newcommand{\esM}{\overline{\sM}}
\newcommand{\sE}{\boldsymbol{\mathcal{E}}}
\newcommand{\sS}{\boldsymbol{\mathcal{S}}}
\newcommand{\sB}{\boldsymbol{\mathcal{B}}}
\newcommand{\sMdual}{\widehat{\sM}}
\newcommand{\sSdual}{\widehat{\sS}}
\newcommand{\sMdualnew}{\widehat{\boldsymbol{\mathcal{M}}}^{\new}}
\newcommand{\sSdualnew}{\widehat{\boldsymbol{\mathcal{S}}}^{\new}}
\newcommand{\zbar}{\overline{z}}
\newcommand{\corrto}{\longleftrightarrow}
\newcommand{\eE}{\mathcal{E}}
\newcommand{\msym}[3]{\langle #1, (#2, #3)\rangle}
\newcommand{\defn}[1]{{\em #1}}
\newcommand{\solution}[1]{\vspace{1em}
\par\noindent{\bf Solution #1.} }
\newcommand{\todo}[1]{\noindent$\bullet$ {\small \textsf{#1}} $\bullet$\\}
\newcommand{\done}[1]{\noindent {\small \textsf{Done: #1}}\\}
\newcommand{\danger}[1]{\marginpar{\small \textsl{#1}}}
\newcommand{\oo}{\infty}
\DeclareMathOperator{\Reg}{Reg}
\DeclareMathOperator{\Proj}{Proj}
\DeclareMathOperator{\proj}{proj}
\DeclareMathOperator{\an}{an}
\DeclareMathOperator{\cond}{cond}
\DeclareMathOperator{\ind}{ind}
\DeclareMathOperator{\im}{im}
\DeclareMathOperator{\abs}{abs}
\DeclareMathOperator{\lcm}{lcm}
\DeclareMathOperator{\cores}{cores}
\DeclareMathOperator{\coker}{coker}
\DeclareMathOperator{\image}{image}
\DeclareMathOperator{\prt}{part}
\DeclareMathOperator{\Br}{Br}
\DeclareMathOperator{\Ann}{Ann}
\DeclareMathOperator{\End}{End}
\DeclareMathOperator{\Eis}{Eis}
\DeclareMathOperator{\Pic}{Pic}
\DeclareMathOperator{\Vol}{Vol}
\DeclareMathOperator{\rank}{rank}
\DeclareMathOperator{\Sel}{Sel}
\DeclareMathOperator{\Mat}{Mat}
\DeclareMathOperator{\BSD}{BSD}
\DeclareMathOperator{\id}{id}
\DeclareMathOperator{\dz}{dz}
\renewcommand{\Re}{\mbox{\rm Re}}
\DeclareMathOperator{\Selmer}{Selmer}
\newcommand{\pfSel}{\widehat{\Sel}}
\newcommand{\qe}{\stackrel{\mbox{\tiny ?}}{=}}
\newcommand{\define}{:=}
\newcommand{\defeq}{:=}
\newcommand{\isog}{\simeq}
\newcommand{\e}{\mathbf{e}}
\newcommand{\bN}{\mathbf{N}}
\newcommand{\Sha}{\mbox{\cyr X}}
\newcommand{\Shaan}{\#\Sha_{\mbox{\tiny \rm an}}}
\newcommand{\TS}{Tate-Shafarevich group}
\newcommand{\Gam}{\Gamma}
\newcommand{\gzero}{\Gamma_0(N)}
\newcommand{\gone}{\Gamma_1(N)}
\newcommand{\gam}{\gamma}
\renewcommand{\Im}{\text{Im}}
\newcommand{\X}{\mathcal{X}}
\newcommand{\bA}{\mathbf{A}}
\newcommand{\cH}{\mathcal{H}}
\newcommand{\cP}{\mathcal{P}}
\newcommand{\cA}{\mathcal{A}}
\newcommand{\cJ}{\mathcal{J}}
\newcommand{\ds}{\displaystyle}
\newcommand{\M}{\mathcal{M}}
\newcommand{\E}{\mathcal{E}}
\newcommand{\cL}{\mathcal{L}}
\newcommand{\cF}{\mathcal{F}}
\newcommand{\cG}{\mathcal{G}}
\newcommand{\cV}{\mathcal{V}}
\newcommand{\cO}{\mathcal{O}}
\newcommand{\cQ}{\mathcal{Q}}
\newcommand{\J}{\mathcal{J}}
\DeclareMathOperator{\new}{new}
\DeclareMathOperator{\sep}{sep}
\DeclareMathOperator{\num}{num}
\DeclareMathOperator{\Morph}{Morph}
\DeclareMathOperator{\old}{old}
\DeclareMathOperator{\Sym}{Sym}
\DeclareMathOperator{\Symb}{Symb}
\newcommand{\dx}{\delta(x)}
\newcommand{\dxh}{\widehat{\delta(x)}}
\newcommand{\dlxh}{\widehat{\delta_\l(x)}}
\newcommand{\dash}{-\!\!\!\!-\!\!\!\!-\!\!\!\!-}
\DeclareMathOperator{\tor}{tor}
\newcommand{\Frobl}{\Frob_{\ell}}
\newcommand{\tE}{\tilde{E}}
\renewcommand{\l}{\ell}
\renewcommand{\t}{\tau}
\DeclareMathOperator{\Spec}{Spec}
\DeclareMathOperator{\Div}{Div}
\DeclareMathOperator{\Jac}{Jac}
\DeclareMathOperator{\res}{res}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\sign}{sign}
\DeclareMathOperator{\unr}{unr}
\newcommand{\N}{\mathcal{N}}
\newcommand{\U}{\mathcal{U}}
\newcommand{\Kbar}{\overline{K}}
\newcommand{\Lbar}{\overline{L}}
\newcommand{\gammabar}{\overline{\gamma}}
\newcommand{\q}{\mathbf{q}}
\renewcommand{\star}{\times}
\newcommand{\gM}{\mathfrak{M}}
\newcommand{\gA}{\mathfrak{A}}
\newcommand{\gP}{\mathfrak{P}}
\newcommand{\bmu}{\boldsymbol{\mu}}
\newcommand{\union}{\cup}
\newcommand{\Tl}{T_{\ell}}
\newcommand{\into}{\rightarrow}
\newcommand{\onto}{\rightarrow\!\!\!\!\rightarrow}
\newcommand{\intersect}{\cap}
\newcommand{\cross}{\times}
\DeclareMathOperator{\md}{mod}
\DeclareMathOperator{\toric}{toric}
\DeclareMathOperator{\Frac}{Frac}
\newcommand{\rb}{\overline{\rho}}
\newcommand{\ra}{\rightarrow}
\newcommand{\la}{\leftarrow}
\newcommand{\lra}{\longrightarrow}
\newcommand{\riso}{\xrightarrow{\sim}}
\newcommand{\da}{\downarrow}
\newcommand{\ua}{\uparrow}
\newcommand{\con}{\equiv}
\newcommand{\Gm}{\mathbf{G}_m}
\newcommand{\pni}{\par\noindent}
\newcommand{\set}[1]{\{#1\}}
\newcommand{\iv}{^{-1}}
\newcommand{\alp}{\alpha}
\newcommand{\bq}{\mathbf{q}}
\newcommand{\hecke}{{\sc Hecke}}
\newcommand{\lidia}{{\tt LiDIA}}
\newcommand{\cpp}{{\tt C++}}
\newcommand{\tensor}{\otimes}
\newcommand{\bg}{{\tt BruceGenus}}
\newcommand{\abcd}[4]{\left(
\begin{smallmatrix}#1\\#3\end{smallmatrix}\right)}
\newcommand{\abcdmat}{\abcd{a}{b}{c}{d}}
\newcommand{\mthree}[9]{\left(
\begin{matrix}#1\\#4\\#7	
\end{matrix}\right)}
\newcommand{\mtwo}[4]{\left(
\begin{matrix}#1\\#3
\end{matrix}\right)}
\newcommand{\vtwo}[2]{\left(
\begin{matrix}#1\\#2
\end{matrix}\right)}
\newcommand{\smallvtwo}[2]{\left(
\begin{smallmatrix}#1\\#2
\end{smallmatrix}\right)}
\newcommand{\smallmtwo}[4]{\left(
\begin{smallmatrix}#1\\#3
\end{smallmatrix}\right)}
\newcommand{\eps}{\varepsilon}
\newcommand{\vphi}{\varphi}
\newcommand{\gp}{\mathfrak{p}}
\newcommand{\W}{\mathcal{W}}
\newcommand{\oz}{\overline{z}}
\newcommand{\Zpstar}{\Zp^{\star}}
\newcommand{\Zhat}{\widehat{\Z}}
\newcommand{\comment}[1]{}
\newcommand{\Q}{\mathbf{Q}}
\newcommand{\GQ}{G_{\Q}}
\newcommand{\R}{\mathbf{R}}
\newcommand{\D}{{\mathbb D}}
\newcommand{\cC}{\mathcal{C}}
\newcommand{\cD}{\mathcal{D}}
\newcommand{\cS}{\mathcal{S}}
\newcommand{\Sbar}{\overline{S}}
\newcommand{\K}{{\mathbb K}}
\newcommand{\C}{\mathbf{C}}
\newcommand{\Cp}{{\mathbb C}_p}
\newcommand{\Sets}{\mbox{\rm\bf Sets}}
\newcommand{\bcC}{\boldsymbol{\mathcal{C}}}
\renewcommand{\P}{\mathbf{P}}
\newcommand{\Qbar}{\overline{\Q}}
\newcommand{\Zbar}{\overline{\Z}}
\newcommand{\kbar}{\overline{k}}
\newcommand{\dual}{\bot}
\newcommand{\T}{\mathbf{T}}
\newcommand{\calT}{\mathcal{T}}
\newcommand{\cT}{\mathcal{T}}
\newcommand{\cbT}{\mathbf{\mathcal{T}}}
\newcommand{\cU}{\mathcal{U}}
\newcommand{\Z}{\mathbf{Z}}
\newcommand{\Zl}{\mathbf{Z}_\ell}
\newcommand{\F}{\mathbf{F}}
\newcommand{\Fl}{\F_{\ell}}
\newcommand{\Flbar}{\overline{\F}_{\ell}}
\newcommand{\Flnu}{\F_{\ell^{\nu}}}
\newcommand{\Fbar}{\overline{\F}}
\newcommand{\Fpbar}{\overline{\F}_p}
\newcommand{\fbar}{\overline{f}}
\newcommand{\Qp}{\Q_p}
\newcommand{\Ql}{\Q_{\ell}}
\newcommand{\Qlbar}{\overline{\Q}_{\ell}}
\newcommand{\Qlnr}{\Q_{\ell}^{\text{nr}}}
\newcommand{\Qltm}{\Q_{\ell}^{\text{tame}}}
\newcommand{\Qv}{\Q_v}
\newcommand{\Qpbar}{\Qbar_p}
\newcommand{\Zp}{\Z_p}
\newcommand{\Fp}{\F_p}
\newcommand{\Fq}{\F_q}
\newcommand{\Fqbar}{\overline{\F}_q}
\newcommand{\Ad}{Ad}
\newcommand{\adz}{\Ad^0}
\renewcommand{\O}{\mathcal{O}}
\newcommand{\A}{\mathcal{A}}
\newcommand{\Og}{O_{\gamma}}
\newcommand{\isom}{\cong}
\newcommand{\ncisom}{\approx}
\newcommand{\almost}{\sim}
\DeclareMathOperator{\Aut}{Aut}
\DeclareMathOperator{\Frob}{Frob}
\DeclareMathOperator{\Ver}{Ver}
\DeclareMathOperator{\Norm}{Norm}
\DeclareMathOperator{\disc}{disc}
\DeclareMathOperator{\ord}{ord}
\DeclareMathOperator{\GL}{GL}
\DeclareMathOperator{\PSL}{PSL}
\DeclareMathOperator{\PGL}{PGL}
\DeclareMathOperator{\Gal}{Gal}
\DeclareMathOperator{\SL}{SL}
\DeclareMathOperator{\SO}{SO}
\newcommand{\galq}{\Gal(\Qbar/\Q)}
\newcommand{\rhobar}{\overline{\rho}}
\newcommand{\cM}{\mathcal{M}}
\newcommand{\cB}{\mathcal{B}}
\newcommand{\cE}{\mathcal{E}}
\newcommand{\cR}{\mathcal{R}}
\newcommand{\cX}{\mathcal{X}}
\newcommand{\sltwoz}{\SL_2(\Z)}
\newcommand{\sltwo}{\SL_2}
\newcommand{\gltwoz}{\GL_2(\Z)}
\newcommand{\mtwoz}{M_2(\Z)}
\newcommand{\gltwoq}{\GL_2(\Q)}
\newcommand{\gltwo}{\GL_2}
\newcommand{\gln}{\GL_n}
\newcommand{\psltwoz}{\PSL_2(\Z)}
\newcommand{\psltwo}{\PSL_2}
\newcommand{\h}{\mathfrak{h}}
\renewcommand{\a}{\mathfrak{a}}
\newcommand{\p}{\mathfrak{p}}
\newcommand{\m}{\mathfrak{m}}
\newcommand{\trho}{\tilde{\rho}}
\newcommand{\rhol}{\rho_{\ell}}
\newcommand{\rhoss}{\rho^{\text{ss}}}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\ur}{ur}
\DeclareMathOperator{\Hom}{Hom}
\DeclareMathOperator{\Ext}{Ext}
\DeclareMathOperator{\Tor}{Tor}
\newcommand{\smallzero}{\left(\begin{smallmatrix}0&0\\0&0
\end{smallmatrix}\right)}
\newcommand{\smallone}{\left(\begin{smallmatrix}1&0\\0&1
\end{smallmatrix}\right)}
\newcommand{\pari}{PARI}
\newcommand{\magma}{{\sc Magma}}
\newcommand{\ksep}{k^{\sep}}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{conjecture}[theorem]{Conjecture}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{algorithm}[theorem]{Algorithm}
\newtheorem{question}[theorem]{Question}
\newtheorem{selfnote}[theorem]{Note that will be removed}
\newtheorem{warning}[theorem]{WARNING}
\theoremstyle{remark}
\newtheorem{goal}[theorem]{Goal}
\newtheorem{remark}[theorem]{Remark}
\newtheorem{example}[theorem]{Example}
\newtheorem{exercise}[theorem]{Exercise}
\newenvironment{bulletlist}
{
\begin{list}
{$\bullet$}
{
\setlength{\itemsep}{.5ex}
\setlength{\parsep}{0ex}
\setlength{\parskip}{0ex}
\setlength{\topsep}{.5ex}
}
}
{
\end{list}
}
\newenvironment{dashlist}
{
\begin{list}
{---}
{
\setlength{\itemsep}{.5ex}
\setlength{\parsep}{0ex}
\setlength{\parskip}{0ex}
\setlength{\topsep}{.5ex}
}
}
{
\end{list}
}
\newcounter{listnum}
\newenvironment{numlist}
{
\begin{list}
{{\em \thelistnum.}}{
\usecounter{listnum}
\setlength{\itemsep}{.5ex}
\setlength{\parsep}{0ex}
\setlength{\parskip}{0ex}
\setlength{\topsep}{.5ex}
}
}
{
\end{list}
}