Thanks, Archie. We had a great fourth quarter. Revenue for the quarter was $83.3 million, a 15% increase over Q4 of last year, and represented our 80th consecutive quarter of revenue growth. Recurring revenue this quarter grew 15% year-over-year. Adjusted EBITDA increased 22% in the quarter, to $23 million. For the year, revenue was $312.6 million, a 12% increase, and recurring revenue grew 13%. The total number of recurring revenue customers increased 8% year-over-year, to approximately 33,150, and wallet share increased 6%. As a reminder, in December 2020, we announced the acquisition of Data Masons, which added approximately 500 customers to our network. Given the timing of the transaction, the acquisition added approximately $850,000 in revenue to our fourth quarter and full-year 2020 financial results. Recall that Data Masons' recurring revenue mix is approximately 50%. Adjusted EBITDA grew 25%, to $87 million. We ended the year with total cash in investments of $190 million. Now, turning to guidance, for the first quarter of 2021, we expect revenue to be in the range of $86.8 million to $87.8 million. For the full-year, we expect revenue to be in the range of $363 million to $366 million, representing approximately 16% to 17% growth over 2020. For the first quarter of 2021, we expect adjusted EBITDA to be in the range of $23.3 million to $24 million. For the full-year, we expect adjusted EBITDA to be in the range of $100 million to $102 million, representing 15% to 17% growth over 2020. For Q1 2021, we expect fully diluted earnings per share to be in the range of $0.18 to $0.19, with fully diluted weighted average shares outstanding of approximately 37 million shares. We expect non-GAAP diluted earnings per share to be in the range of $0.36 to $0.37, with stock-based compensation expense of approximately $7 million, depreciation expense of approximately $4 million, and amortization expense of approximately $2.7 million. For the full-year 2021, we expect fully diluted earnings per share to be in the range of $0.87 to $0.91. We expect fully diluted weighted average shares outstanding of approximately 37.1 million shares. We expect non-GAAP diluted earnings per share to in the range of $1.58 to $1.62, with stock-based compensation expense of approximately $27 million. We expect depreciation expense of approximately $16 million. And we expect amortization expense for the year to be approximately $10.5 million. For the year, you should model approximately 30% effective tax rate calculated on GAAP pretax net earnings. In summary, SPS Commerce delivered strong fourth quarter and full-year 2020 results. With retail dynamics accelerating the shift to e-commerce and driving increased demand for EDI, we are excited about our growth opportunities across a multibillion-dollar TAM, while we continue to deliver strong operating leverage, targeting a long-term adjusted EBITDA margin of 35%. With that, I'd like to open the call to questions.